moduleNotFoundError: no module named (*)
moduleNotFoundError: no module named (*)
我正在尝试 运行 我的测试使用 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))
我最近开始使用pytorch,也遇到过类似的问题。想到几个步骤:
- 您如何编写包含测试的 .py 文件?可能只是您需要更改在单元测试文件中导入
sample
的方式。我希望您需要像 import src.sample.simple
这样的东西。换句话说,可能只是一个路径问题。
- 尝试一个(更)简单的文件夹结构,然后再试一次。如果这不起作用,请尝试仅复制某人发布的简单方案示例。也就是说,只需以某种方式将
python -m pytest
变为 运行,然后开始慢慢增加项目的复杂性。
我正在尝试 运行 我的测试使用 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))
我最近开始使用pytorch,也遇到过类似的问题。想到几个步骤:
- 您如何编写包含测试的 .py 文件?可能只是您需要更改在单元测试文件中导入
sample
的方式。我希望您需要像import src.sample.simple
这样的东西。换句话说,可能只是一个路径问题。 - 尝试一个(更)简单的文件夹结构,然后再试一次。如果这不起作用,请尝试仅复制某人发布的简单方案示例。也就是说,只需以某种方式将
python -m pytest
变为 运行,然后开始慢慢增加项目的复杂性。