mod_wsgi/apache を使用して python2.7 で Web アプリを実行しています。すべて問題ありませんが、.pyc ファイルが見つかりません。それらは mod_wsgi で生成されませんか?
2 に答える
デフォルトでは、apache はおそらく django app ディレクトリへの書き込みアクセス権を持っていません。これはセキュリティ的には良いことです。
Python は、Apache が再起動するたびにコードをバイト再コンパイルし、メモリにキャッシュします。
それは長生きするプロセスなので、大丈夫です。
注: 本当にこれらの pyc が必要な場合は、apache ユーザーにソース ディレクトリへの書き込みアクセスを許可してください。
注 2: これにより、apache で共有されているテスト インスタンスを manage.py で開始すると、非常に多くの混乱が生じる可能性があります。これにより、これらの pyc がルートとして作成され、ソース コードの変更にもかかわらず apache を実行した場合にそれらが保持されるためです。
モジュールが初めてインポートされるとき、またはソースが現在のコンパイル済みファイルよりも新しい場合、.pyc
コンパイルされたコードを含むファイルは通常、ファイルと同じディレクトリに作成され.py
ます。したがって、モジュールをインポートしない場合、ファイルは作成されません。
これに加えて、.pyc
ファイルが作成されない可能性がありますディレクトリのアクセス許可の問題です。これは、たとえば、あるユーザーとして開発したが別のユーザーとして実行した場合、たとえばWebサーバーでテストしている場合に発生する可能性があります。.pyc
モジュールをインポートする場合、ファイルの作成は自動的に行われ、Pythonにはコンパイルされたモジュールをディレクトリに書き戻す機能(権限、空き領域など)があります。
注-スクリプトの実行はインポートとは見なされず、.pyc
作成されません。
.pyc
インポートされていないモジュールのファイルを作成する必要がある場合は、py_compile
およびcompileall
モジュールを使用できます。