首页 > 解决方案 > 如何将子模块导入我的测试模块?

问题描述

我有一个项目结构如下:

.
└── 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 flaskor来实现将其模块导入的from flask import Flask as _Flask。当我尝试这样做(import myapp)时,我最终得到ModuleNotFoundError: No module named 'myapp'

标签: pythonpython-3.xpackagepython-import

解决方案


推荐阅读