ModeNotFoundError:没有名为(*)的模块 [英] moduleNotFoundError: no module named (*)

查看:0
本文介绍了ModeNotFoundError:没有名为(*)的模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用python -m pytest运行测试,但我收到一个错误 ModuleNotFoundError: No module named 'sample' 当使用nosetests或其他任何东西时,它工作得很好,但当尝试使用pytest时,它就不能工作。 我的树看起来像下面这样,你有什么建议为什么它不工作吗?

├── LICENSE.txt
├── README.md
├── data
│   └── data_file
├── exported_register.csv
├── pyproject.toml
├── requirements.txt
├── setup.cfg
├── setup.py
├── src
│   └── sample
│       ├── __init__.py
│       ├── __pycache__
│       │   ├── __init__.cpython-39.pyc
│       │   ├── dziennik.cpython-39.pyc
│       │   ├── przedmiot.cpython-39.pyc
│       │   ├── simple.cpython-39.pyc
│       │   └── uczen.cpython-39.pyc
│       ├── dziennik.py
│       ├── package_data.dat
│       ├── przedmiot.py
│       ├── simple.py
│       └── uczen.py
├── tests
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-39.pyc
│   │   ├── test_ASSERTPY_uczen.cpython-39-pytest-6.2.1.pyc
│   │   ├── test_ASSERTPY_uczen.cpython-39-pytest-6.2.5.pyc
│   │   ├── test_ASSERTPY_uczen.cpython-39.pyc
│   │   ├── test_PYHAMCREST_uczen.cpython-39-pytest-6.2.1.pyc
│   │   ├── test_PYHAMCREST_uczen.cpython-39-pytest-6.2.5.pyc
│   │   ├── test_PYHAMCREST_uczen.cpython-39.pyc
│   │   ├── test_UNITTEST_register.cpython-39-pytest-6.2.1.pyc
│   │   ├── test_UNITTEST_register.cpython-39-pytest-6.2.5.pyc
│   │   ├── test_UNITTEST_register.cpython-39.pyc
│   │   ├── test_UNITTEST_uczen.cpython-39-pytest-6.2.1.pyc
│   │   ├── test_UNITTEST_uczen.cpython-39-pytest-6.2.5.pyc
│   │   ├── test_UNITTEST_uczen.cpython-39.pyc
│   │   ├── test_simple.cpython-39-pytest-6.2.1.pyc
│   │   ├── test_simple.cpython-39-pytest-6.2.5.pyc
│   │   └── test_simple.cpython-39.pyc
│   ├── test_ASSERTPY_uczen.py
│   ├── test_PYHAMCREST_uczen.py
│   ├── test_UNITTEST_register.py
│   ├── test_UNITTEST_uczen.py
│   └── test_simple.py
└── tox.ini

推荐答案

当您使用python -m pytest运行PYTEST时,它使用当前目录作为其工作目录,该目录不包含sample模块(位于./src内)。我处理这个问题的方法是在我的测试目录中有一个conftest.py,其中我将我的源代码目录添加到了如下所示的python路径中:

import sys
from pathlib import Path

source_path = Path(__file__).parents[1].joinpath("src").resolve()
sys.path.append(str(source_path))

这篇关于ModeNotFoundError:没有名为(*)的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆