質問
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が行うことは基本的にこれです。
- すべての.pyファイルをコンパイルし、zipで.pycファイルをスローします
- 必要なすべてをzipに.pydファイルを入れます
- スタブ.pyファイルを作成し、出力ディレクトリに配置します
- python.exeをコピーし、myprogram.exeに名前を変更します
- .zipを開き、コンテンツを実行するために必要なすべての.pydファイルをコピーします
したがって、実際にPythonファイルをコンパイルしているわけではなく、代わりにインターペターの名前を変更し、すべてのソースファイルをフリーズします。
これが役立つことを願っています。
所属していません StackOverflow