运行Python 3.6.1,并试图从我的项目中的另一个包中导入文件(world.py
)。在Python 3中的嵌套包之间导入
我的目录结构:
+-- test_project
| +-- sub_project1
| | +-- __init__.py
| | +-- hello.py
| +-- sub_project2
| | +-- __init__.py
| | +-- world.py
hello.py
:
def say_hello():
return("Hello ")
world.py
:
from test_project.sub_project1.hello import say_hello
print(say_hello() + "world!")
当我进入sub_project2
目录,并运行world.py
,我不断收到这样的:
ModuleNotFoundError: No module named 'test_project'
我试过重写导入语句到from sub_project1.hello import say_hello
。我也尝试在我的PATH环境变量中使用test_project
目录。我试过在我的路径中有test_project
的父目录目录。我试过在我的PATH中有sub_project2
的目录。我在网上搜索了答案,无法计算出我错过的内容。
我在这里做错了什么?
感谢的是,这似乎是最简单的解决方案。我喜欢Python,但是包和导入可能有时是一种绝对的痛苦...... – Megdatronica
不客气。我同意,我也爱Python。没有刺就没有玫瑰。每种语言都有强硬的一面。另外,不要忘记阅读我上面给出的链接,这对导入非常有帮助。 – Alperen