我有一个这样的项目树:
../simple_top/
└── simple
├── __init__.py
└── src
├── a.py
├── b.py
└── __init__.py
a.py包含单一功能:
def a():pass
b.py尝试导入该功能:
from simple.src.a import a
当我尝试从simple_top目录运行b.py时,我看到了以下错误:
python3 simple/src/b.py
Traceback (most recent call last):
File "simple/src/b.py", line 1, in <module>
from simple.src.a import a
ImportError: No module named 'simple'
令人惊讶的是,当我尝试从Pycharm环境中运行代码(工作目录设置为simple_top)时,一切正常。那为什么不在终端上运行呢?如何让它在终端上运行?好像我错过了什么......
答案 0 :(得分:0)
好的,实际上,我找到了这个问题的答案。我应该这样运行b.py:
python3 -m simple.src.b
请参阅Relative imports in Python 3 不知道为什么,但我没有早点发现......