爲了讓自己在自己的項目中明確filestructure我用下面的代碼片段到項目主文件夾動態地添加到PYTHONPATH,因此保證我可以從上面甚至導入文件一個文件位置。動態更新PYTHONPATH防止.pyc文件更新
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "."))
因爲我這樣做,當我開始我的主文件,更改模塊不再被認可,直到我手動刪除任何pyc文件。因此,我認爲這是由於某種原因阻止python檢查pyc文件是否是最新的。我能以任何方式解決這個問題嗎?
稱其爲包的一部分,如果有任何心不是更優雅的解決方案,我會嘗試。雖然我想明白爲什麼會發生這種情況。 – weidler
'sys.modules'包含解釋器加載的模塊。如果你正在修改PYTHONPATH並且一些新的模塊會覆蓋已經存在的模塊,那麼新的變化將不會被看到 - 可能。無論如何,你不應該像這樣使用魔法。只需將PYTHONPATH設置爲儘可能高的文件層次結構,然後完成。另外,你應該使用virtualenv來安裝你的項目和其他依賴項,並且爲更復雜的東西安裝setup.py入口點。你有一個項目是從一個簡單的腳本發展而來,你從來沒有重構過它嗎? –