たまにしかやらないので、忘れてしまうから自分用にメモ。
(2017/9/28)Python2.7.14用に更新
必要なもの
- Visual Studio 2008
- Active Perl
- TortoiseSVN(コマンドラインツールも必ずインストールします)
- Git for Windows 2.10 (XP/2003をサポートする最後のGitのため)
OSはVisual Studio 2008がサポートされているものならいいはずです。XP世代のOSを使おうとすると、Active PerlとかTortoiseSVNは一世代以上古いものを入手する必要があります。64bit版のPythonをビルドする場合、ビルド後イベントで生成したPythonを実行するため、64bit OSを使うほうがいいでしょう。
MSがPython 2.7の拡張機能をビルドするために配布しているVisual C++ 2008コンパイラをPython自身のビルドに使えるかどうかはわかりません。
Download Microsoft Visual C++ Compiler for Python 2.7 from Official Microsoft Download Center
Gitインストール(9/28追記)
Pythonはいくつか外部のソース(OpenSSLやbzipなど)に依存しています。これらのソースコードはGitレポジトリで管理されているため、Git for Windowsをインストールします。
XP/2003を使ってビルドする場合、Git for Windows 2.10が最終版なので、これを使いましょう。もちろん最新版に比べてセキュリティの問題が多く入っているバージョンなので、使用時には気を付けて。
ソース入手
公式からダウンロードします。
注意点として、Pythonが依存している外部ライブラリ(OpenSSL,SQLiteなど)は含まれていません。ダウンロードにGitを使うようになったので、前述の手順で入れておきましょう。
ソースを展開してできた、Python-2.7.xxフォルダの下にPCBuildフォルダがあります。そのなかにget_externals.batというバッチファイルがあるので、実行します。依存しているライブラリのソースコードをSVN経由でとってきます。なので、TotoiseSVNインストール時にコマンドラインツールも必ず入れてください。
ビルド
Pythoon-2.7.xx\PCの下にVC6とかVC7.1とかあります。VS2008の場合、VS9.0フォルダに移動して、コマンドプロンプトからbuild.batを実行するだけです。標準ではWin32のReleaseビルドがVS9.0フォルダ内に生成されます。オプションをいくつか指定できます。
-c Debug:デバッグ版Pythonが生成されます
-p x64:64bit版Pythonが生成されます(32bit OSでもビルドできますが、最後にPython自身が実行できなくてエラーになります)
-t Rebuild:クリーンビルドします
-d -c Debugと同じ意味です
-e ビルド時にget_externals.batを自動的に実行して、依存しているライブラリをダウンロードします
-k 何らかのサービスなどでPythonをバックグラウンドで実行している場合、自動的に終了させます。
注意点として、DebugとReleaseで異なるフォルダに出力する、ということはやっていないようです。大体ファイル名が違う(デバッグ版は_dがつく)ので区別はできますが、後の作業がめんどくさいので、ビルド前にVS9.0フォルダもしくはamd64フォルダを複製しておくといいと思います。