[英]importing a local package without modifying sys.path
這是我的目錄設置:
mydir
├── folder
└── subfolder
└── script1.py
└── shared
├── otherstuff
├── script2.py
└── pkg
├── box.py
└── __init__.py
script2.py
開頭為
import pkg
而且效果很好。 當我在script1.py
包含同一行時,我得到:
Traceback (most recent call last):
File "script1.py", line 1, in <module>
import pkg
ImportError: No module named 'pkg'
有什么好的方法可以使script1.py
語法變得簡單? 我目前在import pkg
之前正在使用sys.path.insert(0, os.path.abspath('./shared'))
(我是從mydir
調用script1
),但這並不能使其易於重復使用,而且很笨拙,修改sys.path
通常可能是個壞主意。
我在這里想念什么? 將pkg
放入script1.py
的最佳方法是什么?
注意:我昨天問過這個問題 ,但是我沒有意識到那里的答案對於上面的dir結構是行不通的,而這正是我真正需要的。 哎呀。
Python 3.x,順便說一句。
嘗試這個。
sys.path.append('./../../shared/')
嚴格限制:僅當將其插入script1.py
且僅當script1.py
保留在mydir/folder/subfolder
子目錄中時,此方法才有效。
而且,據我所知,在這種情況下修改sys.path
幾乎是您必須要做的,因此不要為此感到難過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.