[英]CircleCI for simple Python project with tox: how to test multiple Python environments?
[英]How to setup multiple interpreters in CircleCI using Tox and Poetry?
我正在為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"
我發現為了使用Tox在CircleCI上運行python 3.4和3.7,應該添加py340和py370而不是py34和py37。 去搞清楚!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.