読者です 読者をやめる 読者になる 読者になる

kkamegawa's weblog

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

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

C++ OSS Python

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

必要なもの

  • Visual Studio 2008
  • Active Perl
  • TortoiseSVN(コマンドラインツールも必ずインストールします)

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

ソース入手

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

www.python.org

注意点として、Pythonが依存している外部ライブラリ(OpenSSL,SQLiteなど)は含まれていません。別途取得します。

ソースを展開してできた、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フォルダを複製しておくといいと思います。