Может ли Cython скомпилировать EXE?
Я знаю, что такое цель Китонов. Это для написания компилируемых C-расширений на языке Python, чтобы производить ускорения в вашем коде. То, что я хотел бы знать (и не могу найти, используя мой google-fu), - это то, что Cython может каким-то образом скомпилировать в исполняемый формат, поскольку он уже, кажется, разбивает код Python на C.
Я уже использую Py2Exe, который является всего лишь упаковщиком, но мне интересно использовать его для компиляции до чего-то, что немного сложнее распаковать (все, что упаковано с помощью Py2EXE, можно в основном просто извлечь, используя 7zip, которого я не хочу)
Кажется, если это невозможно, моя следующая альтернатива просто заключается в том, чтобы скомпилировать весь мой код и загрузить его в виде модуля, а затем пакет, который использует py2exe по крайней мере, чтобы получить большую часть моего кода в скомпилированную форму, правильно?
Ответы
Ответ 1
В принципе, похоже, возможно сделать что-то вроде того, что вы хотите, в соответствии с Embedding Pyrex HOWTO. (Pyrex фактически является предыдущим поколением Cython.)
Хм... это название предлагает лучший поиск, чем я сначала пробовал: "Встраивание cython" приводит к этой странице, которая звучит так, как вы хотите.
Ответ 2
Здесь страница wiki по встраиванию cython
Предполагая, что вы установили python на C:\Python31
, и вы хотите использовать Microsoft Compiler.
smalltest1.py
- это файл, который вы хотите скомпилировать.
test.exe
- имя исполняемого файла.
Вам нужно установить переменные среды для cl
.
C:\Python31\python.exe C:\Python31\Scripts\cython.py smalltest1.py --embed
cl.exe /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\Python31\include -Ic:\Python31\PC /Tcsmalltest1.c /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X86 /LIBPATH:c:\Python31\libs /LIBPATH:c:\Python31\PCbuild