我是另一个在 Python 导入方面苦苦挣扎的用户。 这是我的项目结构:
Project/
|-- __init__.py
|-- utils/
| |-- __init__.py
| |-- utils.py
|
|-- app/
| |-- main.py
main.py:
from .utils import utils
导致错误:“ImportError:尝试在没有已知父包的情况下进行相对导入”。
在 main.py 之上添加:
import sys
sys.path.append('.')
解决了问题,但我的意思是......
为什么导入在 python 中如此混乱哈哈?
我也试过:
from utils import utils
,但是:“ModuleNotFoundError:没有名为'utils'的模块”。
你应该使用绝对导入,你必须指定导入模块或包的完整路径,所以对于你的
main.py
它将是:
# main.py
from utils import utils
如果这不起作用,请检查项目的父目录是否在您的 Python 路径中,您可以使用
export PYTHONPATH=$PYTHONPATH:/path/to/parent_directory_of_Project
临时执行此操作。您还可以选择其他选项,例如将项目转换为包,但绝对导入通常是最好的。