[英]Dynamically updating the PYTHONPATH prevents .pyc update
為了使自己在項目中擁有清晰的文件結構,我使用以下代碼段將項目主文件夾動態添加到PYTHONPATH中,因此確保即使從文件位置上方也可以導入文件。
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "."))
因為這樣做了,所以當我啟動主文件時,在我手動刪除任何.pyc文件之前,不再識別對模塊的更改。 因此,我認為這出於某種原因阻止了python檢查pyc文件是否為最新。 我能以任何方式克服這個問題嗎?
如果模塊名稱不再唯一,則添加已經導入的模塊的路徑可能會給您帶來麻煩。 考慮到您確實import foo
,這將其父包bar
添加到sys.path
現在也可以import bar.foo
。 Python將認為這兩個模塊是不同的模塊,這可能會使依賴模塊身份的任何內容混亂。
您應該真正考慮一下為什么首先需要進行此修改。 如果您的程序包中有可執行文件,則不應這樣做
cd bardir/bar
python foo
而是將其作為包裝的一部分通過
cd bardir
python -m bar.foo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.