python - 如何将子模块导入我的测试模块?
问题描述
我有一个项目结构如下:
.
└── MYAPP/
├── data/ # contains data files i.e: html/json/db files.
├── src/
│ └── myapp/
│ ├── __init__.py
│ ├── core.py
│ └── utils.py
└── tests/
├── conftest.py
├── test_core.py
└── test_utils.py # contains ClassA and ClassB
conftest.py
包含以下内容:
import pytest
from src.myapp.utils import ClassA, ClassB
正如您在 的内容中看到的conftest.py
,我正在使用绝对导入来导入所需的类。
偶然在 github 上阅读Flask 的源代码时,我看到他们使用了类似的项目结构:
.
└── flask/
├── src/
│ └── flask
└── tests
并且在测试文件中没有使用绝对导入,例如在conftest.py
文件中它们具有以下内容:
import pytest
from _pytest import monkeypatch
import flask
from flask import Flask as _Flask
test
我的问题是,flask 是如何通过使用import flask
or来实现将其模块导入的from flask import Flask as _Flask
。当我尝试这样做(import myapp
)时,我最终得到ModuleNotFoundError: No module named 'myapp'
解决方案
推荐阅读
- heroku - Heroku 上传时出现“无法解析 Procfile”错误
- java - 需要帮助修复 Java 项目中的错误
- angular - 模态不会在页面加载时打开
- python - 条件/依赖函数参数 - Python
- c# - Entity Framework Core 5:在 sqlite 中将 Guid 存储为 blob(不是字符串)
- mysql - 如果第一个为真,MySQL 不会读取第二个 OR 条件
- tableau-api - 如何组合每个最大值、最小值、中值、平均值的所有计数结果
- python - 如果出现问题,保存 Lambda 的进度
- python - 将出现频率绘制为堆叠条形图中的字母高度
- python - 递归返回单链表的子表