这是我的目录设置:
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
中的语法变得简单?我目前在sys.path.insert(0, os.path.abspath('./shared'))
之前使用import pkg
(我在script1
打电话给mydir
),但这并不适合重复使用,它很笨重,修改sys.path
一般来说可能是一个坏主意。
我在这里缺少什么?将pkg
加入script1.py
的最佳方法是什么?
注意:昨天我问this,但我没有意识到那里的答案对上面的dir结构不起作用,这正是我真正需要的。糟糕。
Python 3.x,顺便说一下。
答案 0 :(得分:0)
试试这个。
sys.path.append('./../../shared/')
严格限制:仅当您将其插入script1.py
时才会有效,且仅当script1.py
保留在mydir/folder/subfolder
子目录中时才会有效。
此外,据我所知,修改sys.path
几乎就是你在这种情况下必须做的事情,所以不要为此做坏事。