0

ソースフォルダーにこれらのファイルの束がないという利便性を除いて、ファイルを回避.pycするための利点、パフォーマンス、またはその他の方法はありますか?

4

3 に答える 3

2

本当に無いと思います。.pycファイルはキャッシュされたバイトコード ファイルであり、インタープリターを起動するたびに Python が Python ファイルを再コンパイルする必要がないため、起動時間を節約できます。

せいぜい、バイトコードのコンパイルをオフにすると、インタープリターがこのステップに費やした時間を測定できます。節約された時間を比較したい場合は.pyc、プロジェクト内のすべてのファイルを削除し、インタープリターに -B スイッチを使用して Python の時間を計ります。

$ time python -B yourproject

-B スイッチなしで再度実行します。

$ time python yourproject

プログラムを実行するユーザーが、ソース コード ディレクトリへの書き込みアクセス権を持っていない可能性があります。たとえば、脆弱性を利用してリモート ユーザーがソース コードを変更する可能性を一切与えたくない Web サーバーなどです。そのような場合、ファイルの書き込みをやめるのではなく、含まれているcompileallモジュール.pycを使用して、特権ユーザーを使用してすべてをバイトコンパイルします。

于 2012-05-30T08:28:39.407 に答える
1

考えられる理由の 1 つは、開発中にファイルを削除または名前変更した場合.py、その.pycファイルは古い名前と古いバイトコードでローカル コピーに残ります。.pyc通常、ファイルをバージョン管理にコミットしないため、これImportErrorにより、自分のマシンでは発生しないが他のマシンでは発生する stray が発生する可能性があります。

于 2015-01-20T08:31:21.997 に答える
0

.pycファイルは、元のソースを維持/出荷する必要がないと人々に思わせる可能性があります。pycファイルは、オペレーティングシステムとPythonのバージョン間で移植できない場合があります。Pythonモジュールを移動するときは、pycファイルを残して、ソースをコピーまたは出荷して、ホストpythonに新しいpycファイルを生成させる方が安全です。

ちなみに、Python 3.2以降、.pycファイルはソースフォルダーではなく__pycache__(ソースフォルダー内)に配置されます。

于 2012-05-30T08:34:34.707 に答える