私はいくつか頻繁に変更されたpythonファイルをインポートするpythonファイルを持っています。インポートしたファイルを変更したときに再コンパイルしないと、問題が発生しました。コンパイルを中止するにはどうしたらいいですか?Pythonインポートのコンパイルを防止する
答えて
私はそれが可能だとは思いません - それはPythonの仕組みです。あなたができる最善の方法は、最初に*.pyc
ファイルを削除する何らかの自動スクリプトを用意することです。あるいは、すべてのインポートを自動的にコンパイルする開発モジュールを用意することもできます。compile
モジュールを試してみてください。
私は個人的にはこのようなトラブルを経験していませんが、ファイルのタイムスタンプをチェックしてみてください。ディレクトリ内のすべてのPythonファイルに対してtouch
を実行してみることができます。 (find -name \\*.py -exec touch \\{\\} \\;
)
force = Trueを指定したcompileall.compile_dirは、このトリックを実行する必要があります。 – jonatron
あなたを助けるかもしれないいくつかのモジュールがあります。
はpy_compileモジュール(http://effbot.org/librarybook/py-compile.htm)は(「インポート」ステートメントがないようにそれらを実行せずに)明示的にモジュールをコンパイルすることができます。
import py_compile
py_compile.compile("my_module.py")
また、compileallモジュール(http://effbot.org/librarybook/compileall.htm)がディレクトリにあるすべてのモジュールをコンパイルします。
import compileall
compileall.compile_dir(".", force=1)
あなたはcompileall
compileall.compile_dirを探しています(DIR [、 maxlevels [、DDIR [、[RX、[強制、 静かな]]]]])
dirという名前のディレクトリツリーを再帰的に降下させ、すべての.py ファイルをコンパイルします。
- 1. Pythonでのインポートの防止
- 2. C# - 再コンパイルを防止する
- 3. Pythonのエンコーディングエラーを防止する
- 4. ActionScriptコードの逆コンパイルを防止する方法
- 5. 名前空間のインポートを防止する
- 6. 無効なXAMLによるコンパイルの防止
- 7. Excelからの重複インポートを防止するアクセスメッセージを抑制する
- 8. python-pptxを使ってパワーポイントテーブルセルのテキストラップを防止する方法
- 9. Pythonの "private"属性へのアクセスを防止する
- 10. Python-twisted:TCPリーダーとWebリソースの間のバッファリングを防止する
- 11. Python:文字列の%s置換を防止する
- 12. Pythonで電子メールヘッダの挿入を防止する
- 13. Fullpage.js - スクロールを防止する
- 14. extrenalhitキャッシングを防止する
- 15. URLインジェクションを防止する
- 16. IPスプーフィングを防止する
- 17. OnErrorNotImplementedExceptionを防止する
- 18. HTML5 - フルスクリーンモードを防止する
- 19. ハッシュタグジャンプを防止する
- 20. jQueryモバイルリンクキャッシングを防止する
- 21. ループを防止するjQuery
- 22. jQuery:スタッキングアニメーションを防止する
- 23. バリデーション防止リフレッシュ/再起動防止 - tkinter
- 24. スリープモードの防止
- 25. ローカルポインタの防止
- 26. サーバサイドのPythonタイムアウトを防止しますか?
- 27. 防止の視聴PDFにHTMLページをインポートしている間、ブラウザ
- 28. ウェブページのテキストのコピーを防止する
- 29. jqGridの行のクリックイベントを防止する
- 30. DOM XSSの防止
これらは再コンパイルする必要があります。なぜなら、最初にどうやっていないのかを調べるためです。 –
うん、まさに。権限エラー?例えば。ソース.pyが読み込み専用の場合、結果の.ycycバイトコードは読み込み専用であるため、上書きすることは難しくなります。 – ewall
それらは**再コンパイルされておらず、**停止したい**それらは再コンパイルからですか?それはほとんど意味がありません。彼らは再コンパイルしていません - あなたは何を "停止"していますか? –