Может ли Cython скомпилировать EXE? - программирование
Подтвердить что ты не робот

Может ли Cython скомпилировать EXE?

Я знаю, что такое цель Китонов. Это для написания компилируемых C-расширений на языке Python, чтобы производить ускорения в вашем коде. То, что я хотел бы знать (и не могу найти, используя мой google-fu), - это то, что Cython может каким-то образом скомпилировать в исполняемый формат, поскольку он уже, кажется, разбивает код Python на C.

Я уже использую Py2Exe, который является всего лишь упаковщиком, но мне интересно использовать его для компиляции до чего-то, что немного сложнее распаковать (все, что упаковано с помощью Py2EXE, можно в основном просто извлечь, используя 7zip, которого я не хочу)

Кажется, если это невозможно, моя следующая альтернатива просто заключается в том, чтобы скомпилировать весь мой код и загрузить его в виде модуля, а затем пакет, который использует py2exe по крайней мере, чтобы получить большую часть моего кода в скомпилированную форму, правильно?

4b9b3361

Ответ 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