我知道这应该有效。但事实并非如此。可能是什么原因?
使用python 3.9、Anaconda环境、Spyder 5.4.3、Windows 10
├── sub
| ├── __init__.py
| └── util.py
|
├── __init__.py
└── main.py
# util.py
def my_func():
print("test")
# main.py
from sub.util import my_func
>>> ModuleNotFoundError: No module named 'sub'
我自己找到了原因。由于我使用的是 Spyder 并且没有通过 F5 (运行文件)执行,而是通过 F9 (运行单行)执行,所以 当前工作目录 (通过
os.getcwd()
检查)不会自动设置为文件的目录。
从控制台执行
python main.py
也可以按预期工作。