ボールを蹴りたいシステムエンジニア

ボール蹴りが大好きなシステムエンジニア、ボールを蹴る時間確保の為に時間がある時には勉強する。

Windowsで最強のPython開発環境を構築するまで【都度更新】

WindowsでのPython開発環境。
試行錯誤の上ようやく落ち着いてきたので纏め。
随時更新する。

全然最強じゃ無いじゃん、とかのツッコミは無しで。

環境

Windows10 64bit
Python for Windows(3.5.1)
Eclipse4.6
PyDev(Eclipseプラグイン)
Cygwin
VMware

希望する開発環境

Python for Windows 64bit

Windowsなのでもちろんこれ。
cygwinでの作業も考えてcygwin内のpythonを使用していた時期もあったがライブラリ周りで躓く事が多かった為、Windows版の利用に落ち着いた。

PyDev(Eclipseプラグイン

IDEEclipseプラグインPyDevを利用。
コード補完とブレークポイントによるデバッグも可能。

色々試したがイマイチ使いずらかったIDE

SublimeText2
  • プラグインをインストールして色々設定は出来る。
  • コード補完もコードチェックも可能
  • SublimeText上からpython実行も可能

使いづらいという訳では無いけど何かもの足りなかった。
IDEに乗り換えたい気持ちが日に日に募ってきたので使うのをやめた。
導入方法例↓

SublimeText2でのpython3開発環境構築 - ボールを蹴りたいシステムエンジニア

PyCharm
  • コード補完の挙動が怪しかった(保管されないコードがある等)
  • 日本語に対応しておらずたまにメニュー操作でハマる

ネットを見る限り使用者は多そう、知り合いのエンジニアも使っていた。
恐らく自分が知識低いだけと思うけど、使いにくさを感じた。

Visual Studio Express 2015 Python Tools
  • デバッグもコード補完も出来てまぁまぁ快適
  • 評価版だったようで、30日過ぎたら使用できなくなった
  • VisualStudiという事でソリューションディレクトリや専用ファイルが作成されたりするのが何か嫌
  • コード補完がたまに怪しい

個人的にはまあまあ使い勝手は良かったので今後ずっとこれを使ってく予定だったけど試用期間過ぎたら使えなくなったので使うのをやめた。
恐らく無償版はあると思うけど調べてない。

コード補完の設定でハマった時のメモ↓

Visual Studio Express 2015 Python Toolsでコード補完が効かない時の対処方法 - ボールを蹴りたいシステムエンジニア

vim

機械学習ライブラリの関係でWindowsでの動作確認が色々と出来なかった事を理由にWindowsでの開発をやめて、仮想環境VMwareLinuxvimで開発。
jedi-vimが重すぎた事が原因で使うのをやめた↓

jedi-vimをインストールしてvimでpythonコードの補完 - ボールを蹴りたいシステムエンジニア

Cygwin

ローカル環境でも出来る限りLinuxに近い形で動作確認を行う為に利用。
PyDev上でのpythonの実行動作確認は行えるが、結局本番環境はLinuxなので。
人によっては不要かもしれないが、自分はコマンド操作が楽で好きなので利用。

注意点としてcywinでのpython実行はcygwinpythonでは無くwindowspythonが実行されるようPATHの設定やalias設定を行う事。
自分の環境では以下のようにcygwinの.bashrcに記述して利用している。

alias python-windows='/cygdrive/c/Python3.5/python.exe'
alias pip-windows='/cygdrive/c/Python3.5/Scripts/pip3.5.exe'

サクラエディタとかcygwinから使いたかったら適宜設定する

function sakura() {
    cygstart /cygdrive/c/Program\ Files\ \(x86\)/sakura/sakura.exe `cygpath -aw $*` &
}

VMware

開発環境というよりは学習や動作検証の為に利用。
機械学習ライブラリ周りの学習の為にはやはりLinux環境での確認が色々と捗る。
PyDevでの実装コードとVMwareのソース連携はcygwinからscp経由で連携する。

Windowsでのpython開発環境で気を付ける事

ライブラリのインストール

後述する機械学習ライブラリも該当するが、pipを利用してのライブラリインストールは(gccビルド等)本来Linxu環境での動作が想定されている為、windows環境でインストールをしても正常に動作しない事がある。

非公式ながら有志の方が作成したWindows版のライブラリをWheelファイルからインストールする。
当該ライブラリ名で検索して環境・バージョンに適したファイルをダウンロードする。

Python Extension Packages for Windows - Christoph Gohlke


Wheelファイルからのインストールでも少しハマったのでその時の記事↓

【解決】続・Windows10のpython3.5でlxmlをインストールしようとしたらハマったのでメモ - ボールを蹴りたいシステムエンジニア


Mecab

単純にMecabを使うだけなら公式のインストーラーからの導入で問題無く使えるんだけど、pythonで利用する為のmecab-pythonを導入がかなり面倒くさい。
MeCabWindowsにおいてはVSを使ってコンパイルするようにソースコードが作られている為VSのインストールが必要。
更に公式のWindowsMecabが32ビット版しか無い為色々とソースの修正が必要となる事等があり、かなりハマった。
何とか問題無く利用できるようになったけど何度挫折しようとした事か。
その時の記事↓

WindowsのPythonでMecabを実行する(+Cygwinでも実行する) - ボールを蹴りたいシステムエンジニア

かなりハマった。

機械学習ライブラリ

scipyのインストールで結構ハマった。
機械学習ライブラリにはnumpyやscikit-learn等もあるが、依存ライブラリとしてscipyも必要となる。
Linuxでは数値演算ライブラリとしてlapack/blasをインストールしているけど、windowsではそれらに対応してない?為、mklをインストールして代用する。

その時記事↓

Windows環境でpythonの機械学習ライブラリscipyのインストールでハマった時の対処 - ボールを蹴りたいシステムエンジニア

おわりに

Windowsでの開発環境構築では色々な場面でハマってその度にMacを購入しようかと何度考えた事か。
ネット上のpython参考サイトもMac利用者が多いし。
とりあえず現在の開発環境で不満無くサクサクpython開発が行えるし、個人的にはベストな開発環境だと思う。
良いツールがあれば都度開発環境をアップデートしていきたい。