Circle CI ImportError:未能导入测试模块Python 3.7.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追踪(最近一次通话(:文件"/usr/local/lib/python3.7/unittest/loader.py",第434行,在_find_test_path中模块=自身_get_module_from_name(名称(文件"/usr/local/lib/python3.7/unittest/loader.py",第375行,位于_get_module_from_name中导入(名称(文件"/home/circleci/project/tests/test_auth.py",第5行,位于从werkzeug.datastructures导入MultiDictModuleNotFoundError:没有名为"werkzeug"的模块

我缺少什么?

编辑:

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

由于环境错误而无法安装程序包: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

这只是意味着没有安装依赖项"werkzeug"。您可能需要安装单独需要的其他软件包。

考虑将依赖安装添加到Dockerfile中,类似于下面的内容

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

如果您遇到权限被拒绝的问题,那么您的测试将由一个没有权限管理python的用户启动。但不太可能。

最新更新