Любой Python "компилятор", который может статически связать зависимость python2x.dll? - PullRequest
1 голос
/ 12 ноября 2009

Насколько я понимаю, py2exe может только динамически связывать файл python2x.dll. Существуют ли какие-либо Python-компиляторы, которые могут упаковать все это в один автономный файл .exe для облегчения переносимости?

Если так или нет, то какой компилятор лучше всего z0mg!

Ответы [ 4 ]

2 голосов
/ 04 декабря 2009

Если вы посмотрите нижнюю часть вики-страницы py2exe SingleFileExecutable , вы увидите, что она может создавать однофайловые исполняемые файлы. Они включают DLL внутри, но вы не должны это замечать. Я считаю, что это работает со странным хаком, который перехватывает вызовы LoadLibrary, чтобы позволить им читать откуда-либо из файла .exe, но, опять же, вы не должны это замечать. Мы использовали это раньше ... это работает.

1 голос
/ 12 ноября 2009

PyInstaller утверждает, что может создать простой исполняемый файл, удобный для пользователя. Возможно, это будет соответствовать вашим потребностям. Я никогда не использовал это.

0 голосов
/ 12 ноября 2009

Насколько я понимаю, возможно статически связать python с исполняемым файлом, но тогда вы потеряете способность загружать другие динамические модули (файлы .pyd), такие как os и zlib и math. Если только вы не можете статически скомпилировать их в основную программу.

И, насколько мне известно, единственный компилятор, который может это сделать, это компилятор C, который компилирует python из исходного кода. :)

Я не уверен, что оно того стоит. Лучше просто используйте p2exe и создайте каталог файлов, которые могут быть заархивированы и отправлены.

0 голосов
/ 12 ноября 2009

py2exe может упаковать все это в один исполняемый файл, без необходимости установки python в целевой системе, он может включать в себя python2x.dll, но для конечного пользователя, как это важно

...