运行Python 3.6.1,并且我试图获取文件(world.py
)从项目中的另一个包中导入。
我的目录结构:
+-- 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'
我尝试将import语句重写为from sub_project1.hello import say_hello
。我也尝试过将test_project
目录放在PATH环境变量中。我尝试在PATH中添加test_project
的父目录。我尝试sub_project2
在PATH中添加目录。我已经在网上搜索了答案,无法解决我所缺少的问题。
我在这里做错了什么?
您需要将“ hello.py”的路径添加到 sys.path
import sys
sys.path.append('../sub_project1')
from hello import say_hello
print(say_hello() + "world!")
输出:
Hello world!
来源在这里。这个讨论真的很有帮助。
编辑:因为“ sub_project1”有__init__.py
,您可以使用:
import sys
sys.path.append('..') #Adds upper directory sys.path
from sub_project1.hello import say_hello
print(say_hello() + "world!")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句