【问题标题】:Poetry (pyproject.toml) support both Python 2 and 3诗歌 (pyproject.toml) 支持 Python 2 和 3
【发布时间】:2020-02-15 07:20:33
【问题描述】:

我有一个需要同时支持 Python 2 和 3 的包(usignals)。在我的pyproject.toml 中,我有这个:

[tool.poetry.dependencies]
python = ">=2.7, >=3.6"

[tool.poetry.dev-dependencies]
ipython = [
    {version = "~5", python = "~2.7"},
    {version = "~7.8", python = ">=3.5"}
]

当我通过 tox -rve py27 运行 tox 时,我收到此错误:

ERROR: Package u'usignals-0.4.0' requires a different Python: 2.7.5 not in '>=3.6'

请注意,如果我指定python = "*",那么我会得到Because usignals depends on both ipython (~5) and ipython (~7.8), version solving failed.,这也无济于事。

请注意,如果我指定python = "~2.7 || >=3.6",我会得到与以前相同的错误。

我做错了什么?

在任何人问之前,这里是tox.ini 文件:

[tox]
isolated_build = true
envlist = py27, py36

# Run `pyenv global 3.7.4 system` if pyenv cannot find python2.
[testenv]
whitelist_externals = poetry
commands =
    poetry install -v
    poetry run pytest tests/

更详细的输出:

Resolving dependencies...
   1: fact: usignals is 0.4.0
   1: derived: usignals
   1: fact: usignals depends on click-help-colors (^0.6.0)
   1: fact: usignals depends on click (^7.0)
   1: fact: usignals depends on pymysql (^0.9.3)
   1: fact: usignals depends on coverage (*)
   1: fact: usignals depends on pytest (*)
   1: fact: usignals depends on sphinx (^1.8)
   1: fact: usignals depends on sphinx (^2)
   1: fact: usignals depends on ipython (~5)
   1: fact: usignals depends on ipython (~7.8)
   1: fact: usignals depends on bumpversion (^0.5.3)
   1: fact: usignals depends on docformatter (^1.3)
   1: fact: usignals depends on flake8 (^3.7)
   1: fact: usignals depends on mock (^3.0)
   1: fact: usignals depends on sure (^1.4)
   1: fact: usignals depends on tox (^3.14)
   1: fact: usignals depends on yapf (^0.28.0)
   1: fact: usignals depends on pytest-colordots (^1.1)
   1: fact: usignals depends on pytest-runner (^5.1)
   1: fact: usignals depends on pytest-xdist (^1.30)
   1: selecting usignals (0.4.0)
   1: derived: pytest-xdist (^1.30)
   1: derived: pytest-runner (^5.1)
   1: derived: pytest-colordots (^1.1)
   1: derived: yapf (^0.28.0)
   1: derived: tox (^3.14)
   1: derived: sure (^1.4)
   1: derived: mock (^3.0)
   1: derived: flake8 (^3.7)
   1: derived: docformatter (^1.3)
   1: derived: bumpversion (^0.5.3)
   1: derived: ipython (~7.8)
   1: conflict: usignals depends on ipython (~5)
   1: ! not ipython (~5) is satisfied by ipython (~7.8)
   1: ! which is caused by "usignals depends on ipython (~7.8)"
   1: ! thus: version solving failed
   1: Version solving took 0.016 seconds.
   1: Tried 1 solutions.

[SolverProblemError]                                                          
Because usignals depends on both ipython (~5) and ipython (~7.8), version solving failed.  

【问题讨论】:

    标签: python-3.x python-2.7 ipython tox python-poetry


    【解决方案1】:

    There was a bug 其中has been fixed

    为了后代:

    python = "^2.7 || ^3.6 ||  ^3.7"
    

    ipython = [
        {version = "^5", python = "~2.7"},
        {version = "^7", python = ">=3.5"}
    ]
    

    应该是正确的。有新版诗我会尽快测试。

    【讨论】:

    • 这行得通!谢谢。
    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 2017-01-19
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多