VSCODE PYTHON - ModuleNotFoundError:没有名为 'src' 的模块



我用pytest在"cmd"它工作得很好,但当我试图导入我的主文件时,我得到一个导入错误。下面是我的文件树结构:

MATCHING_CC/
- pytest.ini
- __init__.py               (empty file)
- conftest.py               (empty file)
- src/
- __init__.py           (empty file)
- conftest.py           (empty file)
- matching_ingr_zing.py
- services/
- __init__.py       (empty file)
- ElasticSearch.py
- ingredient_extractor_for_search.py
- metrics.py
- stop_word_matching.py
- models/        (folder to save trained models)
- tests/
- __init__.py                (empty file)
- test_services/
- __init__.py            (empty file)
- test_elastic_search.py
- test_ingredient_extractor_for_search.py
- test_metrics.py
- test_src/
- __init__.py                (empty file)
- test_matching_ingr_zingr.py

下面是问题的图像:误差

如果有人能帮助我并解释我的错误是什么,我将非常感激。

似乎您的程序不知道在哪里找到src。这可能解决问题。

import sys

# adding src to the system path
sys.path.insert(0, '/home/USERNAME/PATH/TO/src')

from src import something

解释如下:

ModuleNotFoundError,因为默认情况下python解释器只会检查当前目录下的文件,我们需要手动设置文件路径以从另一个目录导入模块。我们可以用不同的方法来做。下面将详细讨论这些方法。

使用sys模块

我们可以使用sys。将新的不同文件夹(我们想要导入模块的文件夹)的路径添加到系统路径中,以便python在当前目录中找不到模块时也可以在该目录中查找模块。sys。Path属于列表类型类,所以我们可以很容易地使用insert方法来添加文件夹路径。

进一步阅读:https://www.geeksforgeeks.org/python-import-module-from-different-directory/

您需要从您的父目录MATCHING_CC_TEST运行test,而不是从src:

由于matching_ingr_zing.py已经在src目录中,因此您不再需要在文件导入开始时添加src

只是做:

from services.ingredient_extractor_for_search.py import ... as ... 

相关内容

  • 没有找到相关文章

最新更新