[英]ModuleNotFoundError: No module named 'src'. Import modules from another directory without sys.path and execute them from existing directory
尽管这是一个常见的问题,但我相信我有一个奇怪的情况
MAIN
| --src
| -- data
| -- __init__.py
| -- operation.py
| tests
| __init__.py
| test_file.py
| examples
| __init__.py
| example.py
test_file.py 和 example.py 的内容如下:
from src.data.operation import *
我通过在测试文件夹中导航从 powershell 执行以下命令:
python -m pytest -v test_file.py
测试文件运行良好,没有出现任何错误。
现在我通过在示例文件夹中导航从 powershell 执行以下命令:
python -m example.py
这给我带来了模块错误。 尽管测试和示例与 src 处于同一层次结构中,但仅当我通过在示例文件夹中导航来执行 example.py 文件时,我才会收到模块错误。 如果有人能解释这背后的逻辑,以及在不涉及 sys.path 的 Windows 系统中执行 example.py 的最佳方法是什么,那就太好了?
不附加 sys.path 就无法导入。 默认情况下,Python 在 $PYTHONPATH 中查找其模块和包。 当您在模块中导入某些内容时,它首先搜索具有该名称的内置模块,然后在变量 sys.path 给出的目录列表中搜索文件或文件夹。
要成功从 src 导入,请在 example.py 的顶部添加这些行
import sys
sys.path.insert(0, "PATH_TO_THE_MAIN_FOLDER")
从示例文件夹中运行模块:
python -m example
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.