Spyder IDE 中从子模块的基本导入失败

问题描述 投票:0回答:1

我知道这应该有效。但事实并非如此。可能是什么原因?

使用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'
python ide spyder importerror
1个回答
0
投票

我自己找到了原因。由于我使用的是 Spyder 并且没有通过 F5 (运行文件)执行,而是通过 F9 (运行单行)执行,所以 当前工作目录 (通过

os.getcwd()
检查)不会自动设置为文件的目录。

从控制台执行

python main.py
也可以按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.