wxPythonインストールに大苦戦

wxPythonを入れようとして大苦戦その激闘の記録

pipで入らない

なんでpipで入らないんや(怒
pip install wxPython するとなんか怒られた...。
仕方ないので公式サイトからパッケージでインストール。
wxPython3.0-osx-cocoa-py2.7.pkgをクリックすると...


“wxPython3.0-osx-cocoa-py2.7.pkg”は壊れているため開けません。 ディスクイメージを取り出す必要があります。

なんじゃこれ。どうしてもウチに入りたくないのかこの子は...。
調べると、「システム環境設定>セキュリティ>ダウンロードしたアプリケーションの実行許可>すべてのアプリケーションを許可」にする必要があるらしい。
やっと入った。とりあえず動かしてみよう
と思いきや


動かない

>>import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named wx

パスが通ってないだけだったのでバスを設定。

$ vi ~/.bash_profile
export PYTHONPATH="/usr/local/lib/wxPython/lib/python2.7/site-packages/wx-3.0-osx_cocoa:/usr/local/lib/wxPython/lib/python2.7/site-packages:$PYTHONPATH"
$ source ~/.bash_profile
$ python
>> import wx
>>

とりあえずインポートはできた。
空のウィンドウを作ってみよう...

またしてもできない...

>>wx.App()
This program needs access to the screen.
Please run with a Framework build of python, and only when you are
logged in on the main display of your Mac.
$ 

今度はなんだ、はやく楽にしてくれ...。エラーの文をそのまま検索すると一番上にwxPyWikiなるものが出てきた。
http://wiki.wxpython.org/wxPythonVirtualenvOnMac
よくわからずvirtualenvを入れてみる。


これもなぜかpip install virtualenv で入らなかったけど、公式サイトにあったこれでいけた。

pip install https://github.com/pypa/virtualenv/tarball/develop

wxPyWikiに書いてあるやつをやってみてもよくわからず彷徨っていたら、それっぽい対処法を発見。
http://smellman.hatenablog.com/entry/2014/02/06/140246
しかし、


ここで使われているgithubのページが404notfound...。

githubでinstall_pythonw検索したらおそらく同じと思われるやつがでてきた。
https://github.com/gldnspud/virtualenv-pythonw-osx
さっきのページではinstall_pythonw.pyを実行してたけど、__init__.pyになってました。


クローンして実行してみたけどうまくいかない。

さっき入れたvirtualenvを使うと仮想環境を作れるみたいなので、もしかしてその仮想環境上でやる感じなのか?と思い、やってみる。
http://dev.classmethod.jp/server-side/language/python-virtualenv-tutorial/
ここの通りにpython2.7の環境を作成。

$ virtualenv -p usr/bin/python py27
$ . py27/bin/activate
(py27)$

環境の中に入れたようだ。ついでにメモしておくと
環境停止

(py27)$ deactivate

パッケージ一覧

(py27)$ lssitepackages

環境消去

$ rmvirtualenv py27

qiita.com


このなかでさっきのgithubのコードを実行してみる。

(py27)$ python __init__.py `which python`/../..
finished!  App bundle created at:  /hogehoge/py27/Python.app

なんか成功したっぽい!


恐る恐るwx.App()

(py27)$ python
>>> import wx
>>> wx.App()
<wx._core.App; proxy of <Swig Object of type 'wxPyApp *' at 0x7fb758d3c090> >
>>>

い、いけたようだ...。長かった...
この環境内でしかできないけど
疲れたからもういいや