kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Python 2.7.xをWindowsでビルドする

たまにしかやらないので、忘れてしまうから自分用にメモ。

(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が最終版なので、これを使いましょう。もちろん最新版に比べてセキュリティの問題が多く入っているバージョンなので、使用時には気を付けて。

ソース入手

公式からダウンロードします。

www.python.org

注意点として、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フォルダを複製しておくといいと思います。