有趣的Python导入问题

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

我收到一个奇怪的模块未找到错误,我似乎无法理解为什么会发生这种情况。

我的目录结构为:

项目/服务/九柱游戏/应用程序/

                          database/
                              --__init__.py
                              --testresults.py
                          models/
                              --__init__.py
                              --testresult.py

results.py 导入:

从 app.models.testresult 导入 TestResult、TestRunDetails、Step

app.models.testresult 是一个包含 pydantic 模型的文件

当我尝试直接运行 testresults.py 时:

python 测试结果.py

我得到:

ModuleNotFoundError:没有名为“app”的模块

我跑了:

导入操作系统 尝试: user_paths = os.environ['PYTHONPATH'].split(os.pathsep) 除了关键错误: 用户路径 = []

并打印 user_paths 输出:

[':/c/Users/xxxxxxx/Desktop/projects/']

请帮助我了解发生了什么。 PYTHONPATH 不正确吗?在我看来,它正在查看项目目录,但它也应该指向各个文件夹吗?

python-3.x python-import python-module pythonpath modulenotfounderror
1个回答
0
投票

要解决此问题,您可以修改 results.py 中的导入语句以指定相对导入路径。由于 results.py 位于数据库文件夹中,并且您尝试从 app.models.testresult 导入,因此可以使用相对导入,如下所示:

from ..models.testresult import TestResult, TestRunDetails, Step 

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