質問

CX_FREEZEを使用してPythonプログラムをフリーズしています。 CX_FREEZEを実行すると、多数のPYDファイルが作成され、多数のPYCファイルがLibrary.zipという名前のアーカイブに配置され、いくつかのDLLファイルもあります。

誰かがPYCとPYDファイルの違いを教えてもらえますか? Library.zipにないPYDファイルの理由は何ですか? PYDファイルをアーカイブに入れることも可能ですか?

ありがとう。

役に立ちましたか?

解決

免責事項:私はしばらくcx_freezeを使用していません......

.pydファイルは、特定のPython Required関数を含むDLLマシンコードファイルです。

.Pycファイルは、ByteCodeにコンパイルされた.pyファイルです。

したがって、PYDはマシンコードであり、PYCはバイトコードです

さて、PYDが.zipにない理由について....それは、プログラムを実行するためにPythonインタープリターがそれらを.pydsが必要とするためだと思います。 CX_FREEZEが行うことは基本的にこれです。

  1. すべての.pyファイルをコンパイルし、zipで.pycファイルをスローします
  2. 必要なすべてをzipに.pydファイルを入れます
  3. スタブ.pyファイルを作成し、出力ディレクトリに配置します
  4. python.exeをコピーし、myprogram.exeに名前を変更します
  5. .zipを開き、コンテンツを実行するために必要なすべての.pydファイルをコピーします

したがって、実際にPythonファイルをコンパイルしているわけではなく、代わりにインターペターの名前を変更し、すべてのソースファイルをフリーズします。

これが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top