我正在为Django设置一个可重用的软件包。我将Poetry用作程序包管理器,并使用tox在多个python环境中进行测试。但是,我在CircleCI上继续收到以下错误:
py27-django111: commands succeeded
ERROR: py34-django111: InterpreterNotFound: python3.4
ERROR: py34-django20: InterpreterNotFound: python3.4
ERROR: py34-django21: InterpreterNotFound: python3.4
py35-django111: commands succeeded
py35-django20: commands succeeded
py35-django21: commands succeeded
py36-django111: commands succeeded
py36-django20: commands succeeded
py36-django21: commands succeeded
ERROR: py37-django111: InterpreterNotFound: python3.7
ERROR: py37-django20: InterpreterNotFound: python3.7
ERROR: py37-django21: InterpreterNotFound: python3.7
我找不到有关如何解决此问题的任何报告,我在CircleCI中看到了不同的Django软件包项目,但是它们在构建环境方面的方法不同。
我的circle.yml文件:
version: 2
jobs:
development:
docker:
- image: circleci/python:3.6.8
steps:
- checkout
- run:
name: Install
command: |
poetry install
- run:
name: Lint
command: |
poetry run flake8 django_package
- run:
name: Test
command: |
poetry run tox
- run:
name: Codecov
command: |
poetry run codecov
deployment:
docker:
- image: circleci/python:3.6.8
steps:
- checkout
- run:
name: Publish
command: |
poetry publish --build --username "${PYPI_USERNAME}" --password "${PYPI_PASSWORD}" --no-interaction
workflows:
version: 2
development-workflow:
jobs:
- development
deployment-workflow:
jobs:
- development:
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
branches:
ignore: /.*/
- deployment:
requires:
- development
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*/
branches:
ignore: /.*/
我的tox.ini文件:
[tox]
skipsdist = True
envlist =
{py27}-django{111}
{py34,py35,py36,py37}-django{111,20,21}
[testenv]
whitelist_externals = poetry
skip_install = true
commands =
poetry run coverage run --branch runtests.py tests
deps =
django111: Django>=1.11,<2.0
django20: Django>=2.0,<2.1
django21: Django>=2.1
我的pyproject.toml文件:
[tool.poetry.dependencies]
python = "*"
django = "*"
[tool.poetry.dev-dependencies]
coverage = "^4.5"
codecov = "^2.0"
flake8 = "^3.7"
tox = "^3.7"
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
答案 0 :(得分:1)
我发现为了使用Tox在CircleCI上运行python 3.4和3.7,应该添加py340和py370而不是py34和py37。走吧!