Question

J'utilise cx_Freeze pour geler mon programme python. En cours d'exécution cx_Freeze, un tas de fichiers PYD sont créés, tout un tas de fichiers PYC sont mis dans une archive nommée library.zip et quelques fichiers DLL sont là aussi.

Quelqu'un pourrait-il me dire la différence entre les PYC et les fichiers PYD? Quelle est la raison pour laquelle les fichiers PYD pas dans le library.zip? Est-il possible de mettre les fichiers PYD dans l'archive ainsi?

Merci.

Était-ce utile?

La solution

Disclaimer: Je ne l'ai pas utilisé cx_Freeze en temps ......

fichiers .PYD sont des fichiers DLL code machine qui contiennent des fonctions de python-requis spécifiques.

Les fichiers .pyc sont des fichiers .py qui ont été compilés en bytecode.

PYDs sont le code de la machine et PyCS sont bytecode

Quant à savoir pourquoi les PYDs ne sont pas dans le fichier .zip .... J'imagine que c'est parce que ces .PYDs sont nécessaires par l'interpréteur Python pour exécuter le programme. Ce qui fait cx_Freeze est essentiellement ceci:

  1. compiler tous les fichiers .py et jeter les fichiers .pyc dans un zip
  2. mettre tous les fichiers nécessaires .pyd dans le zip
  3. créer un fichier .py stub et le mettre dans le répertoire de sortie
  4. copier le python.exe et renommage à myprogram.exe
  5. copier tous les fichiers .pyd nécessaires pour ouvrir le fichier .zip et exécuter le contenu

Vous n'êtes donc pas compiler réellement votre fichier python, vous renommant plutôt le interpeter et geler tous les fichiers source.

J'espère que cette aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top