Circle-CI ImportError: Failed to import test module Python 3.7.0
Circle-CI ImportError: Failed to import test module 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
这是错误:
======================================================================
ERROR: tests.test_auth (unittest.loader._FailedTest)
ImportError: Failed to import test module: tests.test_auth
Traceback (most recent call last):
File "/usr/local/lib/python3.7/unittest/loader.py", line 434, in _find_test_path
module = self._get_module_from_name(name)
File "/usr/local/lib/python3.7/unittest/loader.py", line 375, in _get_module_from_name
import(name)
File "/home/circleci/project/tests/test_auth.py", line 5, in
from werkzeug.datastructures import MultiDict
ModuleNotFoundError: No module named 'werkzeug'
我错过了什么?
编辑:
我现在添加了 pip install -r requirements.txt
但我现在得到:
Could not install packages due to an EnvironmentError: Errno 13] Permission denied: '/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。但事实并非如此。
我第一次尝试为我的应用程序设置 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
这是错误:
======================================================================
ERROR: tests.test_auth (unittest.loader._FailedTest)
ImportError: Failed to import test module: tests.test_auth Traceback (most recent call last): File "/usr/local/lib/python3.7/unittest/loader.py", line 434, in _find_test_path module = self._get_module_from_name(name) File "/usr/local/lib/python3.7/unittest/loader.py", line 375, in _get_module_from_name import(name) File "/home/circleci/project/tests/test_auth.py", line 5, in from werkzeug.datastructures import MultiDict ModuleNotFoundError: No module named 'werkzeug'
我错过了什么?
编辑:
我现在添加了 pip install -r requirements.txt
但我现在得到:
Could not install packages due to an EnvironmentError: Errno 13] Permission denied: '/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。但事实并非如此。