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
このなかでさっきの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> > >>>
い、いけたようだ...。長かった...
この環境内でしかできないけど
疲れたからもういいや