我有一個腳本foo.py
,它試圖from bar import baz
:基本層次如下:陰影網站模塊,通過我自己的模塊在Python
/
foo.py
bar/
__init__.py
baz.py
的問題是,該系統的船舶自身bar
版本在site-packages
,我想避免導入(我想確保我使用的是我發佈的模塊,而不是系統上的任何版本)。
最初我以爲sys.path
中的路徑順序就足以解決這個問題。但是,在某些系統上,site-packages
中有一個bar.pth
文件,該文件將bar
添加到sys.modules
,導致bar
僅導入site-packages
版本時導致完全忽略sys.path
。
如何確保我導入bar
的本地版本,而不管系統上可能設置了什麼?
只需重命名'bar'。隱藏像這樣的內置模塊是一個可怕的想法。它不會影響你自己的代碼,就像遮蔽'list';它會影響整個程序中的所有代碼。 – user2357112
這不是內置模塊,這是site-packages中的一個模塊。我無法重命名吧 - 它與系統模塊相同,只是可能不同的版本。 – xyzzyz