my_project
-my_project
- __init__.py
- main.py
- constants.py
-test
- __init__.py
- test_main.py
试验_主.pyfrom my_project import main
在主.pyimport constants
当我在我的项目中运行nosetests时,我最终得到ImportError: No module named 'constants'
两个__init__.py
文件都是空白的。在
如果我在main.py
中将import constants
改为from my_project import constants
,鼻子测试就有效了。但是,现在如果我运行python main.py
,我得到ImportError: No module named 'my_project'
。在
有人能帮我指出我做错了什么吗?我搜索了不少帖子,但我自己都没能搞定。谢谢。在
您正在python3项目中尝试python2样式的相对导入:
import constants
将在python3中尝试导入constants
系统路径水平。在相反,使用类似
在主.py在
请参见示例PEP 404:
和this SO question。在
在主.py->;
import constants
是一个隐式相对导入(bad)。它应该改成更常见的from my_project import constants
。在你提到这会让鼻子测试有效。注意:您不需要tests子目录中的
__init__.py
,事实上,这通常是不可取的。在现在要修复您的错误,
python main.py
有一个导入错误,如果您没有将它包含在您的sys.path
中,这是正常的。有很多方法可以解决这个问题-相关问题 更多 >
编程相关推荐