gpt4 book ai didi

python - Gitlab CI Python 运行测试 - ModuleNotFoundError : No module named xxx

转载 作者:行者123 更新时间:2023-12-04 16:45:31 25 4
gpt4 key购买 nike

我看到很多关于导入模块错误的问题,但我无法解决 Gitlab CI 管道的问题。
我的项目结构:

├───config
├───docs
├───src
__init__.py
│ ├───dataset
__init__.py
│ ├───exceptions
│ ├───resources
│ └───utils
__init__.py
└───tests
__init__.py
└───resources
__init__.py
我想使用 pytest 运行测试。
我调用这个命令 python -m pytest -p no:cacheprovider或使用单元测试
'python -m unittest discover -v' 来自根目录,并尝试从 test 目录调用。在这两种情况下,我在从数据集模块导入类时都有问题。有趣的是,我有两个测试文件。
第一个文件导入:
import os import unittest

from src.utils.FileManager import FileManager
第二次进口:
from src.dataset.DatasetHelper import DatasetHelper
第一个文件正在通过,但第二个文件失败并出现错误:

from dataset import DatasetHelper ModuleNotFoundError: No modulenamed 'dataset'


所以问题是 src 中的 utils 等其他模块被正确导入,只有数据集有问题。我为此苦苦挣扎了几天,我完全没有想法。我也尝试将而不是从数据集更改为从 src.dataset。它没有用。我可以通过单击鼠标右键在 PyCharm 中运行测试,并且只运行测试而不是在 CI 环境中。
我试过的:
  • 将模块添加到 $PYTHONPATH 中,例如
    sys.path.insert(0, "/builds/USER/PROJECT/src/dataset") 
    sys.path.insert(0, "/builds/USER/PROJECT/src")
    sys.path.insert(0, "/builds//USER/PROJECT/tests")

  • 添加之前 PYTHONPATH 的内容是:
    Current $PYTHONPATH: ['/builds/USER/PROJECT/config', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
    列表中的第一个模块是 config,因为我从该目录运行脚本以将上述模块添加到路径。没有帮助
  • 从根目录运行测试命令并添加前缀 src在测试目录中导入。没有帮助
  • 最佳答案

    from dataset import DatasetHelper
    ModuleNotFoundError: No module named 'dataset'



    要么在 src.__init__或更可能在 src.dataset.__init__有进口声明 from dataset import DatasetHelper .您必须将其重写为 from src.dataset import…

    关于python - Gitlab CI Python 运行测试 - ModuleNotFoundError : No module named xxx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52129838/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com