これが私のコードです:
from distutils.msvc9compiler import MSVCCompiler
target_python_file = "main.py"
ccode = """#include <Python.h>
int
main(int argc, char *argv[])
{
PyObject* PyFileObject;
putenv("PYTHONPATH=lib");
putenv("PYTHONHOME=.");
Py_SetProgramName(argv[0]);
Py_Initialize();
PyFileObject = PyFile_FromString("%s", "r");
PyRun_SimpleFileEx(PyFile_AsFile(PyFileObject), "%s", 1);
Py_Finalize();
return 0;
}
""" % (target_python_file, target_python_file)
with open("main.c","w") as main:
main.write(ccode)
compiler = MSVCCompiler()
compiler.compile(["main.c"],include_dirs=["C:/Python27/include"])
compiler.link("",["main.obj"],"python_launcher.exe",libraries=["python27"], library_dirs=["C:/Python27/libs"])
これを実行するとpython_launcher.exe
表示されますが、実行しようとすると有効な win32 アプリケーションではありませんというエラーが表示されます。
Visaul C++ 2008 を使用して同じコードをコンパイルできますが、動作しますが、コンパイラの構成オプションを把握するために distutils を利用したいと考えています。
デバッグ
作成した実行ファイルを WinDebug で開こうとしたのですが、開けませんでした。
トルコ語の部分は、有効な Win32 アプリケーションではないと述べています。