2010-05-20 2 views
3

Я использую cx_Freeze для замораживания моей программы python. При запуске cx_Freeze создается куча файлов PYD, целая куча файлов PYC помещается в архив с именем library.zip, и там также есть несколько DLL-файлов.cx_Freeze и файлы PYC/PYD

Может ли кто-нибудь сказать мне разницу между PYC и файлами PYD? В чем причина для файлов PYD не в library.zip? Можно ли также поместить файлы PYD в архив?

Спасибо.

ответ

6

Отказ от ответственности: Я не использовал cx_Freeze в некоторое время ......

.PYD файлы DLL файлы машинно-кода, которые содержат специфические питона-функции требуется.

Файлы

.PYC являются .py файлами, которые были скомпилированы в байт-код.

так PYDs является машинным кодом и PYCs является ByteCode

Теперь о почему PYDs не в .zip .... Я предположил бы, что это потому, что эти .PYDs нужны питона переводчиком запустить программу. Что cx_Freeze делает в основном это:

  1. собрать все .py файлов и бросать .pyc файлов в почтовом
  2. поместить все необходимые .pyd файлов в почтовом
  3. создать стаб .py файл и положить это в выходном каталоге
  4. скопировать python.exe и переименовать myprogram.exe
  5. копию всех .pyd файлов, необходимые для открытия .zip и запустить содержимое

S o вы на самом деле не компилируете свой файл python, вы вместо этого переименовываете интерпретатор и замораживаете все исходные файлы.

Надеюсь, это поможет.

+0

Спасибо Тим. .. и все это, пока я думал, что я «компилирую» его в exe. : p –

+0

Вы можете посмотреть в pypy. Pypy на самом деле может скомпилировать ваш код на Python в C, но не совсем просто настроить/использовать/понимать. http://codespeak.net/pypy/dist/pypy/doc/ –