Circle-CI ImportError:无法导入测试模块Python 3.7.0

时间:2020-03-04 08:39:30

标签: python circleci circleci-2.0

我正在尝试为我的应用程序首次设置Circle-CI。这是一个基于Python 3.7.0的应用程序,并进行了一些测试。该应用程序构建良好,但在运行测试作业时失败。在本地测试可以正常进行,所以我假设我缺少一些Circle-CI配置?

这是我的Yaml:

version: 2.0
jobs:
  build:
    docker:
      - image: circleci/python:3.7.0
    steps:
      - checkout
      - run:
          name: "Run tests"
          command: python -m unittest

这是错误:

================================================ ======================

错误:tests.test_auth(unittest.loader._FailedTest)

ImportError:导入测试模块失败:tests.test_auth 追溯(最近一次通话): _find_test_path中的文件“ /usr/local/lib/python3.7/unittest/loader.py”,第434行 module = self._get_module_from_name(名称) _get_module_from_name中的文件“ /usr/local/lib/python3.7/unittest/loader.py”,行375 导入(名称) 在第5行的文件“ /home/circleci/project/tests/test_auth.py” 从werkzeug.datastructures导入MultiDict ModuleNotFoundError:没有名为“ werkzeug”的模块

我想念什么?

编辑:

我现在添加了pip install -r requirements.txt,但现在得到了:

由于 EnvironmentError 而无法安装软件包:Errno 13]权限被拒绝:'/usr/local/lib/python3.7/site-packages/MarkupSafe-1.1.1.dist-info '

编辑:

除了答案,这里是完整的yaml配置工作:

version: 2.0
jobs:
  build:
    docker:
      - image: circleci/python:3.7.0
    steps:
      - checkout
      - run:
          name: "Install dependencies"
          command: |
            python3 -m venv venv
            . venv/bin/activate
            pip install --upgrade pip
            pip install --no-cache-dir -r requirements.txt
      - run:
          name: "Run tests"
          command: |
            . venv/bin/activate
            python -m unittest

1 个答案:

答案 0 :(得分:1)

这仅表示未安装依赖项“ werkzeug”。您可能需要安装单独需要的其他软件包。

考虑如下所示将依赖项安装添加到Dockerfile中

RUN pip install --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt

如果遇到拒绝权限的问题,那么将以没有权限管理python的用户身份开始测试。但事实并非如此。