自宅Windows PCへのPython3.6セットアップ その1

■ 概要

Python3.6系にwxPythonを入れようとして苦労した。結局解決せずに次回持ち越し。

■ はじめに

どうも仕事でPythonを使って色々試してみるには大人の事情が邪魔することが多いので、自宅Windows PCにもPythonを入れてみることにした。というか前々から入れていたのだが真面目に使ってなかったので、この際最新版(Python3.6系)を試してみようと思ったのだ。

ついでにパソコン周りでどうにかする雑用を片付けやすくするため、あとかねてから手を出してみたいと思っていたGUI周りに近づくため、いくつかパッケージを追加することにした。具体的には"pywin32", "selenium", "wxPython"である。それから仕事場でどうしても期待通り動いてくれないでいる"cx_freeze"もいじってやろうと思う。 さらには"flake8"も。LINTは大事よね。

■ Python3.6.2を試す

 pywin32はあいかわらず.exe形式のインストーラを使わないとダメらしいので、素直に公式からダウンロードしてきて実行→成功。

seleniumはpip installであっさり入る。

しかしwxPythonはpipではうまく入らず、ソースコードからビルドしてやっても粗雑に進めたせいか、一見インストールされたように見えてimport wxでエラーとなる。

以前どこかでPython3.5系にはうまく入ったような記憶があるので、下手に最新版に手を出した代償かなー、と思いつつ、ちょっとだけWebで情報収集。

…30分くらい試行錯誤してたら子供がぐずりはじめたので中止。Python3.6.2は2017年7月リリース版である。ちょっと攻めすぎたかと思い、後戻りすることにした。

■ Python3.6.1を試す

./Python36/scripts/以下にpipがあるのだが、pip3(Python3系のためのpipだとか)の他にpip3.6とかいうのがある。WinmergeでDiffをとってみたら、全部同じだった。まぎらわしいが、過去のしがらみとかそういうのだろう。それはそれとして、Winmergeの.exe形式インストーラがzip圧縮されて頒布されているというのはどうなんだろうか。

 

しかるにwxPythonはどうなったかというと不成功。今更ながらエラーログの類をよく見てみたら、Windowsのユーザーフォルダの中にキャッシュを作ってあれこれしていたのでまずは下記のようにしてキャッシュを無効化してみた。

% pip --no-cache-dir install -I wxpython

…これでもNG。まあそんなに期待はしていなかったが…。

おそらく「Unable to find vcvarsall.bat」と指摘されているエラーが問題なのだろう。要するにWindows SDKを別途用意する必要があるようだ(関連記事)。

しかしPython3.6.1をビルドしたと思われるVisual C++ 2015のSDK単体をMS公式ですぐ見つけることができなかった。改めてVisual Studioをインストールするのもどうかと思い、いにしえのVisual Studio2005の場所を環境変数で指定して逃げられないか試してみる。つまり「VS140COMNTOOLS」に値「C:\Program Files\Microsoft Visual Studio 8\VC」を与えてみる…結局ダメ。

もう面倒なのでVisual Studio 2017 communityを最小構成で放り込むことにした。待ち時間が暇だったので、バックグラウンドでpip install cx_freezeしておいた。

 

さてwxPythonに戻ると、今度は「msvc9compiler.py」にて「raise ValueError(str(list(result.keys())))」。

 

そろそろ家族の目が冷たくなってきたので今日はここまでとする。