Я пытаюсь создать исполняемый файл, используя Cython со встроенным Python ( смотрите здесь ). Я могу найти примеры, делающие это на Linux, но не на Windows. Единственный пример Windows Я могу найти результаты в исполняемом файле, который вызывает python dll ( здесь ). Но это не то, что я ищу. Я хочу автономный исполняемый файл, который не вызывает python dll.
Ниже того, что я сделал:
Сначала программа (hello.py):
print("hello")
Я запускаю Cython с опцией --embed в приглашении anaconda:
cython hello.py --embed
В результате получается файл c с основной функцией (привет. c).
Затем установите соответствующие переменные среды:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
Затем скомпилируйте и скомпонуйте это:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe" /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\Anaconda3_5.2.0\include -Ic:\Anaconda3_5.2.0\PC /Tchello.c /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /LIBPATH:C:\Anaconda3_5.2.0\libs /LIBPATH:C:\Anaconda3_5.2.0\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64"
В результате получается небольшой (19 КБ) исполняемый файл (тест. exe).
Чтобы запустить этот параметр, установите PYTHONPATH
set PYTHONPATH=C:\Anaconda3_5.2.0
и вызовите программу
test.exe
, которая работает без каких-либо проблем, но Python не встроена как он называет python36.dll. Я предполагаю, что компиляция и компоновка должны быть выполнены по-другому, но я не знаю как. Кто-нибудь знает, как создать исполняемый файл windows, который встраивает интерпретатор Python с использованием Cython? Любая помощь будет принята с благодарностью.