[英]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.