「Pythonなら、64ビット版のインストーラーを配布してるよ」と言われそうですが、
ちょっと疑問がわいたので、ソースからコンパイルしてみます。コンパイラは配布されているCPythonと同じもの、VC 9.0 (2008)を使います。
いろいろ試したのですが、結果的にうまくいった方法は以下の通り。
(1) ソース(Python-2.6.2.tar.bz2)をダウンロードして展開したディレクトリを
c:¥Python-2.6.2とします。
(2) コマンドラインから以下を実行すると、デバッグ版のpython26_d.dllをビルドできます。
pushd c:¥Python-2.6.2
Tools¥buildbot¥build-amd64.bat
途中、コンパイラがsqlite3が無いとか、db何たらが無いとかエラーを出しますが、
とりあえず、c:¥Python-2.6.2¥amd64に*.lib, *.dll, *.pyd等が生成されるようです。
(3) チェックのため、C言語からpython26_d.dllを呼び出すソースをビルドしてみます。
VS 2008でプロジェクトを作り、ドキュメントからパクった以下のソースをペースト。
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime¥n"
"print 'Today is',ctime(time())n");
Py_Finalize();
return 0;
}
構成マネージャで、64ビット版(x64)の構成を作ります。
インクルードディレクトリに"c:¥Python-2.6.2¥include"を追加。
ライブラリディレクトリに"c:¥Python-2.6.2¥PCbuild¥amd64"を追加。
# 本来はこれで良いはずなのですが、このままだとコンパイラに「pyconfig.hが無い」と怒られてビルドできません。
(4) 通常のCPythonの配布ファイルに含まれているpyconfig.hを"c:¥Python-2.6.2¥include"にコピーします。
ビルドすると、ちゃんと動くexeができました(実行時にpython26_d.dllにパスを通しておくのをお忘れなく)。
めでたしめでたし。
ちなみに、Pyconfig.hを読んでみると、コメントに「これは自動的に生成されるファイルではない」と書いてあり、本来はインストール作業の一貫として手作業で作ることが想定されているようです。
中身は、プラットフォーム別のマクロ定義のようでした。本来はきちっと調べるべきなのかもしれませんが、今回は動くところまで確認できたので、とりあえずよしとします。
(2009/05/20 追記)
一部ファイルのパスを間違えて記述していたのを修正。