本編
Macでつくったpythonのアプリケーションを、WindowsでちょこっとだけGUI化して配布してPythonとか全然知らない一般人でも使えるようにしようかなとおもって環境構築をした
VirtualBoxに入れたWindows8.1で環境構築をした
まず、WindowsにはChocolateyというパッケージ管理システムというものがあるので
これを使ってみた
インストールは、Qiitaにあがっていた誰かのコマンドプロンプトにコピペして貼り付けたらいいよってやつ貼り付けた。
PowerShell> choco install vim
のようにしたらvimがインストールされて便利……
ただし管理者権限でPowerShell起動しないとよくわからんエラー吐いて落ちる。
そして
PowerShell> choco install python
のようにしてpythonをインストールして使っていたところ……
『chocolatey使うのやめたほうがいいよ』という神の言葉をいただいた。
(Windowsで64bitコンパイラを使うを書いた人に)
なんでかって言うと、chocolateyって、LinuxのyumやらMacのHomebrewとは違って、インストーラとか適当で、バイナリファイルを裏で実行してインストールしているだけらしいからだ。
そしてそのバイナリファイルも、べつにきちんとバージョン管理されているわけではないので、
『手動で入れたほうがいいんじゃね!』ということだった。
なので、Python3.4.3のWIndowsバイナリで、32bit版をインストールした。64bit版はめんどくさいらしい。
でも32bit版もちょっとめんどくさくないだけでじゅうぶんめんどk(ry
なおあのさっきのリンクに書いてある文章をちゃんと読んでからやったほうがあとあと詰みにくいと思う。
Visual Studio C++ 2010 Express
は、公式ページにそのまま行っても、2015年版がダウンロードされちゃうので、
がんばってさがした結果、ここに書いてある人のリンクからダウンロードした。blog.ionelmc.ro
無視してるとpip installで、C++で書かれたライブラリをインストールしようとするところで詰む
(C++のコンパイラがなければそりゃビルドできなくて落ちるよねって話。MacとかLinuxは最初からgccが入ってるから便利。Clangはあんまり好きくない)
pythonの公式サイトで、python3.4.3のwindows32bit版をダウンロードする
なお、windowsではpipはpip install yattehaikenai
ではなくて
PowerShell> python -mpip install virtualenvwrapper-win
のように使わないと、あとあとすごくめんどくさいことになるらしいので、そうやってやるべき
コマンドが上手く動かない時は、Path設定がおかしくて、それはまぁ環境設定のところで直せるんだけど、
Path設定がおかしいということは、そもそもうまくインストールされていないので
今後もWindowsでPythonを使うつもりなら、きちんとインストールできるようにしたほうがいいんじゃねっておもった。
PowerShell> mkvirtualenv hoge
のようにして仮想環境ができたら成功。やったぜ。
C++が必要なやつ、たとえばpyqueryなどはC++でビルドできないと失敗するので、
何かしら怒られたら、Python3.4.3のためのC++のビルド環境ないんじゃボケという意味なので
がんばる!!!!!!!!!!!!!!!!!!!
まとめ!!!
- .NET Framework 4とかついてるSDK入れる
- Visual C++ 2010 Expressいれる
- Visual Studio SP1アップデートなんちゃらをいれる
- コンパイラ更新プログラムをいれる
- Python3.4.3を32bit版でいれる
- pipでのインストールはpython -mpip でいれる(python3.4は、デフォルトでpipが入っているので、いちいちget-pip.pyとかダウンロードしない。easy_installからもpipをインストールしない。pipのupdateが失敗する【パスがふつうじゃなくなる】ので、使えないときは大人しくしっかりインストールできるまでがんばる)
- virtualenvwrapperを入れよう!!!pyenvでもいいらしいけど、virtualenvの方がよさげ
C:\Python34\Scripts
がないと、たとえ動いていても、たぶんインストール失敗してる。
なおVisual Studioとかのせいで結構容量食うので注意
おまけ(lxmlのインストール)
pyquery
を入れようとすると、
その依存関係のlxml
のインストールで詰む
これはVisual Studio 2008でlxml
が作られていることから生じているようだ。
F... Thank you Microsoft. You don't save my life.
なので、
stackoverflow.com
の人のやり方でインストールした。
たしかに、既にビルドされているものをパスだけ設定するなら、べつにコンパイラとか使わないもんね。
↑無理だった。いやインストール自体は成功したけど。
from lxml import etree
でImportErrorが出た。死ねばいい
有志の人がつくってくれたwheelファイルがあるので、
それを使ってインストールした
http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
まずwheelがないので
python -mpip install wheel
でインストールしようとしたら
pipの新しいバージョンがあるよと言われたので
python -mpip install --upgrade pip
そしてまた、
python -mpip install wheel
さっきダウンロードしたlxmlのwheelファイルを
python -mwheel install $HOME\Downloads\(ry
してインストール
これでエンド/(^o^)\
pyqueryもインストールして、やっと使えるようになった。
ぼくはもう、普段はWindowsで絶対開発しないぞと
そうおもった。