[英]VSCODE PYTHON - ModuleNotFoundError: No module named 'src'
我在“cmd”中使用 pytest 进行了单元测试,它工作正常,但是当我尝试导入我的主文件时,我得到一个导入错误。 这是我的文件树结构:
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.path 将新的不同文件夹(我们要导入模块的文件夹)的路径添加到系统路径,这样 python 也可以在该目录中查找模块,如果它没有找到模块在其当前目录中。 由于 sys.path 属于列表类型类,所以我们可以很容易地使用 insert 方法添加文件夹路径。
进一步阅读: https ://www.geeksforgeeks.org/python-import-module-from-different-directory/
您需要从父目录MATCHING_CC_TEST
而不是从src
运行测试:
由于matching_ingr_zing.py
已经在src
目录中,你不需要在文件导入的开头添加src
。
只需这样做:
from services.ingredient_extractor_for_search.py import ... as ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.