ろぐれこーど

限界組み込みエンジニアの学習記録とちょっぴりポエム

Ubuntu18.04 にpipでwxPython(Phoenix)をインストール

Ubuntu18.04 + python3.7.6(pyenv) にwxPython(Phoenix)をインストールするときに少しハマったのでメモしておきます。

結論

2020/5/17現在の方法です。

sudo apt install libsdl2-2.0-0 libsdl2-dev

してから

pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-18.04 wxPython

linuxビルド済みパッケージのリンクからインストールします。リンクのubuntu-18.04の部分はubuntuのバージョン依存です。LTS版ならここを変更すると適切に取ってこれると思います。

余談ですが、ver4.1.0はpython3に対応したPhoenixのfirst releaseだそうです。

試したこと

pip

wxpythonのインストールに必要な依存ライブラリを先にaptで入れます。

sudo apt install 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

で、pipします。

pip install wxpython

すると長大な実行ログらしきものが表示され、末尾に以下のようなエラーが出ます。

...
ERROR: Command errored out with exit status 1: /home/username/.pyenv/versions/3.7.6/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c6413j_w/wxpython/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c6413j_w/wxpython/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-f7ldtdg5/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.

ちょっと原因不明です。wxpythonはビルドに必要なライブラリが多くてややこしく、検索すると色々な策が見つかりますが結局どれも解決に至らなかったので諦めました。

apt

python2.7向けならaptで入れられるようです。

sudo apt install python-wxgtk3.0

ですが今更python2系を使うわけもなく、しかもsystem pythonに入れられるので扱いづらいです。私はpyenvでpython管理していたためこの方法は取りませんでした。

まとめ

たまにこういう罠にハマったりするので、pipに全幅の信頼を置くのは良くないかもしれませんね。

condaでは試していませんが、Anaconda Cloudには収録されているようです。

anaconda.org

参考

https://qiita.com/hotstaff/items/b3f8bb4c3c098d95925c

https://askubuntu.com/questions/758774/how-to-install-wxpython-ubuntu-16-04

https://forums.ubuntulinux.jp/viewtopic.php?id=19476