はじめに
Python2でwxPythonを使用する場合は、pip installで簡単にインストールすることが可能です
Python3でwxPythonを使用する場合も、同様にpip3 installでインストールすることが出来るのですが、
Armadillo-640においてpip3 installでwxPythonをインストールしようとすると、必ずインストールに失敗します。
この記事では、Python3でwxPythonを使用するためにインストールを成功させる方法をご紹介します。
1.wxPythonとは
1-1.wxWidgets
wxWidgetsはC++で開発されているクロスプラットフォームの GUIツールキットです。
1-2.wxPython
wxWidgetsをPythonのモジュールとしてラッピングしたものです。
Python3に対応した最新バージョンのwxPythonが、wxPythone Phoenixです。
2.前提
2-1.SDブート
wxPythonをインストールするにあたって、関連するライブラリなども含めて数GBのファイルをダウンロードすることとなります。
そのため、eMMCよりも容量の大きいmicroSDカードをブートディスクとして使用することを推奨します。
*参考:16GBのmicroSDカードを使用して正常にインストールを完了できることを確認しています
microSDカードをブートディスクとする方法については下記をご確認ください
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_manual_ja-1.9.0/ch24.html
2-2.所要時間
前述の通りやり取りするファイルの量が多いこともあり、wxPythonのインストールにはかなりの時間を要します。
*参考:実証時、コマンドを実行してからインストール完了まで5時間程度かかりました。
3.インストールの実行
3-1.事前にインストールするもの
インストールを完了するために事前にいくつかのパッケージをインストールしておく必要があります
Debianパッケージ
apt-get installで以下のパッケージをインストールしてください
[armadillo ~]# apt-get install python3 python3-pip libgtk2.0-dev libgtk-3-dev\ libjpeg-dev libtiff-dev libsdl1.2-dev libgstreamer-plugins-base1.0-dev\ libnotify-dev freeglut3 freeglut3-dev libsm-dev libwebkitgtk-dev libwebkitgtk-3.0-dev
Python3パッケージ
pip3 installで以下をインストールしてください
[armadillo ~]# pip3 install pathlib2
3-2.wxPythonのインストール
インストール実行
以下を実行してください
[armadillo ~]# pip3 install wxpython
インストール結果確認
以下を実行してください
[armadillo ~]# pip3 list
表示された一覧の中に以下が含まれていればインストール完了です。
wxPython (4.x.x)
注意事項
PIP3をインストール後に、以下のコマンドでPIP3自身をアップデートすると、pip3 installが正常に動作しなくなります。
[armadillo ~]# pip3 install --upgrade pip
apt-getでインストールしたPIP3とpip3 installでインストールしたPIP3とでバージョンが異なり互換性がなくなるためです。 以下のコマンドを実行してPIP3のアンインストールと再インストールを行ってください。
[armadillo ~]# python3 pip uninstall pip && sudo apt install python3-pip --reinstall
wxPythonは、インストールに失敗する場合でもそれがわかるまで数時間かかる場合があります。
今回のインストール方法は初期化後に他のパッケージがインストールされていない状態での実施を想定しています。
2020年4月追記:
Armadillo-640上で直接wxPythonをインストールするのではなく、
at-debian-builderでwxPython3を導入したルートファイルシステムを作成し、
それをArmadillo-640のeMMCに書き込むと正常に動作することを確認しました。
こちらの手順については後日別記事にまとめさせていただきます。