Django の再利用可能なパッケージをセットアップしています。パッケージ マネージャーとして Poetry を使用しており、複数の Python 環境でテストするために tox を使用しています。ただし、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"