ソースフォルダーにこれらのファイルの束がないという利便性を除いて、ファイルを回避.pyc
するための利点、パフォーマンス、またはその他の方法はありますか?
3 に答える
本当に無いと思います。.pyc
ファイルはキャッシュされたバイトコード ファイルであり、インタープリターを起動するたびに Python が Python ファイルを再コンパイルする必要がないため、起動時間を節約できます。
せいぜい、バイトコードのコンパイルをオフにすると、インタープリターがこのステップに費やした時間を測定できます。節約された時間を比較したい場合は.pyc
、プロジェクト内のすべてのファイルを削除し、インタープリターに -B スイッチを使用して Python の時間を計ります。
$ time python -B yourproject
-B スイッチなしで再度実行します。
$ time python yourproject
プログラムを実行するユーザーが、ソース コード ディレクトリへの書き込みアクセス権を持っていない可能性があります。たとえば、脆弱性を利用してリモート ユーザーがソース コードを変更する可能性を一切与えたくない Web サーバーなどです。そのような場合、ファイルの書き込みをやめるのではなく、含まれているcompileall
モジュール.pyc
を使用して、特権ユーザーを使用してすべてをバイトコンパイルします。
考えられる理由の 1 つは、開発中にファイルを削除または名前変更した場合.py
、その.pyc
ファイルは古い名前と古いバイトコードでローカル コピーに残ります。.pyc
通常、ファイルをバージョン管理にコミットしないため、これImportError
により、自分のマシンでは発生しないが他のマシンでは発生する stray が発生する可能性があります。
.pycファイルは、元のソースを維持/出荷する必要がないと人々に思わせる可能性があります。pycファイルは、オペレーティングシステムとPythonのバージョン間で移植できない場合があります。Pythonモジュールを移動するときは、pycファイルを残して、ソースをコピーまたは出荷して、ホストpythonに新しいpycファイルを生成させる方が安全です。
ちなみに、Python 3.2以降、.pycファイルはソースフォルダーではなく__pycache__
(ソースフォルダー内)に配置されます。