PyCUDAとTheanoでGPU計算をするのが目的です。どう考えてもWindowsで64bitのPythonの開発はすべきではないのですが、手持ちのノートPCに開発環境を構築してみました。中古で古いGeForceのグラフィックボードを搭載したノートPCを購入してUbuntuをインストールした方が幸せになれます。主に以下のサイトを参考にして作業します。
WindowsのGCC環境
WindowsでGCCを使う場合はいろいろな方法がありますが今回は以下の組み合わせにしました。
- MinGW: Windows用のミニマルなGNU/GCC環境
- MinGW-w64: MinGWからフォークした64bit環境
- TDM-GCC: 最新のGCCに対応、MinGWとMinGW-w64をオプションで指定可能
- MSYS: コマンドライン環境
Python 2.7
Python 2.7 Releaseからpython-2.7.amd64.msiのインストーラーをダウンロードして実行します。環境変数PATHにフォルダを追加します。
- コンピューター右クリック > プロパティ > システムの詳細設定 > 詳細設定 > 環境変数 > システム環境変数 > PATHの最後に追加
C:\Python27;C:\Python27\Scripts |
MinGWとMSYS
MinGWからmingw-get-setup.exeのインストーラーをダウンロードして実行します。32bitと64bitのGCC環境を用意するためフォルダを分けてインストールします。
- インストール先:
c:\MinGW\32
- graphical user interfceのチェックを外す
インストールが終了したらprofile.xmlを編集してフォルダ構成を変更します。
|
mingw-getコマンドで32bit環境構築
fstabを編集して32bit環境に切り換えます。
c:/mingw/32 /mingw |
mingw-getコマンドを使い必要なパッケージをインストールします。
$ mingw-get install msys-core msys-base msys-vim msys-wget msys-patch msys-flex msys-bison msys-unzip |
32bitのgcc環境をインストールします。
$ mingw-get install gcc g++ gfortran |
fstabを編集してデフォルトは64bit環境を使うように設定設定しておきます。
c:/mingw/64 /mingw |
msys.batのショートカット作成
デスクトップにmysyを起動するショートカットを作成します。
- デスクトップ右クリック > 新規作成 > ショートカット
- 項目の場所:
c:\mingw\msys\msys.bat
アイコンを変更します。
- デスクトップのmsys.bat右クリック > アイコンの変更
- アイコンの場所:
c:\mingw\msys\msys.ico
TDM-GCC と MinGW-w64
TDM-GCCのダウンロードページからTDM64 MinGW-w64 editionのtdm-gcc-4.9.2.exeをダウンロードします。
- インストール先:
c:\mingw\64
- 全てのcomponentsをインストール、Add to PATHはチェックを外す
システム環境変数PATHを確認してc:\mingw\64\bin
が入っていたら削除します。
- コンピューター右クリック > プロパティ > システムの詳細設定 > 詳細設定 > 環境変数 > システム環境変数 > PATH
デスクトップのmsys.batをダブルクリックして、gccのバージョンを確認します。
$ gcc --version |
TDM-GCCは32bitと64bitをオプションを指定してターゲットを変更することができます。MSYSホームディレクトリのc:\mingw\msys\home\masato\.profile
を編集してMSYSの起動時にビルド環境を表示するようにします。
|
Fortran
SciPyのビルドに必要なようなのでインストールしました。実際にはカスタムのインストラーを使うことにしたので不要かも知れません。TDM-GCCではデフォルトでFortranがインストールされません。
tdm-gcc-webdl.exeをダウンロードします。Manage
ボタンを押してインストールされた環境の構成変更をします。
- インストール先:
c:\mingw\64
- 全てのcomponentsをインストール、Add to PATHはチェックを外す
SCons
SConsのビルドツールをインストールします。デスクトップに作成したmysy.batを起動します。
$ cd ~ |
GUIインストーラーを起動します。
$ start dist/scons-2.3.4.win-amd64.exe |
Scriptsフォルダにコピーします。
$ cp /c/Python27/Scripts/scons.py /c/Python27/Scripts/scons |
バージョンを確認します。
$ scons --version |
Dependency Walker
Dependency Walkerをインストールします。Dependency WalkerはWindowsモジュールの依存関係を調べることができます。zipをダウンロードして/c/mingw/64/bin
に解凍します。
$ wget http://www.dependencywalker.com/depends22_x64.zip |
SWIG
SWIGはC/C++のライブラリをいろいろ言語から呼び出すためのツールです。zipをダウンロードして/c/mingw/msys/opt
にインストールします。
$ wget http://prdownloads.sourceforge.net/swig/swigwin-3.0.5.zip |
~/.profile
を編集しPATHに追加します。
export PATH=$PATH:/opt/swigwin-3.0.5 |
msys.batを再起動してバージョンを確認します。
$ swig -version |
GTK+
GTK+のGUIツールキットをインストールします。インストーラーをダウンロードして実行します。
$ wget http://sourceforge.net/projects/ascend-sim/files/thirdparty/gtk%2B-2.22.1-20101229-x64-a4.exe/download |
~/.profile
を編集しPATHに追加します。
export PATH=$PATH:/c/Program\ Files/GTK+-2.22/bin/ |
msys.batを再起動してインストールの確認をします。gtk-domoを実行するとGUIが起動します。
$ gtk-demo |
Subversion
SubversionはSlikSVNからSlik-Subversion-1.8.11-x64.msiダウンロードしてインストールします。
~/.profile
を編集しPATHに追加します。
export PATH=$PATH:/c/Program\ Files/SlikSvn/bin |
msys.batを再起動してバージョンの確認をします。
$ svn --version |
python27.libの再ビルド
64bit環境のPython extensionsをビルドする場合に必要な準備をします。python27.libがMinGW-w64だと動作しないため、gendefを使ってビルドし直します。
$ svn co svn://svn.code.sf.net/p/mingw-w64/code/trunk/mingw-w64-tools/gendef -r5774 ~/gendef |
エクスプローラーを開きpython27.dllをコピーします。
- コピー元:
c:\windows\system32\python27.dll
- コピー先:
c:\Python27\libs\python27.dll
Creating a 64 bit development environment with MinGW on Windowsを参考にしてpython27.libをビルドします。デスクトップのmysy.batショートカットを起動します。
$ cd /c/Python27/libs |
c:\Python27\include\pyconfig.h
を開き、141行目から以下3行をカットします。
107行目の#ifdef _MSC_VER
の上にカットした3行をペーストします。
~/.profile
最終的に以下のような~/.profile
をMSYSのホームディレクトリ(c:\mingw\msys\home\masato
)に配置します。
|