在“setup.py”中指定 Python 2.7+ 和 Python 3.xx(任意)

Specify Python 2.7+ and Python 3.xx (any) in ``setup.py''

我的“setup.py”当前包含以下语句:

setup(...
    classifiers = [
            ...
            "Programming Language :: Python :: 2.7",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.1",
            "Programming Language :: Python :: 3.2",
            "Programming Language :: Python :: 3.3",
            "Programming Language :: Python :: 3.4",
            "Programming Language :: Python :: 3.5",
            "Programming Language :: Python :: 3.6",
            "Programming Language :: Python",
            ...
            ],
    ...
    )

有没有办法让我指定 "any Python 3, from 3.0 upwards",而无需明确枚举所有现有和未来的 Python?

我问这个的原因是,即使上面指定了一般的 "Programming Language :: Python :: 3",Anaconda 安装失败并显示:

Fetching package metadata ......... 
Solving package specifications: .... 
UnsatisfiableError: The following specifications were found to be in conflict:  
- dendropy 
- python 3.5
* Use "conda info <package>" to see the dependencies for each package

pip 安装工作正常。

谢谢!

分类器只是提示,安装包时 conda installpip install 都不会真正查看它们。 这些提示适用于搜索包裹或查看包裹的人。如果一个包支持所有 python 3 版本,那么无论您是明确列出它们还是仅作为 "Programming Language :: Python :: 3" 我想大多数访问者都会知道这是什么意思 - 这更多是作者个人喜好的问题(以及已经选择的分类器的数量)。

然而,当您使用 conda 安装软件包时(即使它是纯 python),它必须针对您正在使用的 python 和 OS 版本构建.在您的情况下,您尝试从 ericmjl conda channel 安装。此频道包含 python 3.5 版本,但仅适用于 OSX,linux 的二进制文件仅为 python 3.4。

您可以使用 pip 将其从 PyPI 安装到您的 conda 环境中:pip install dendropy(确保您使用安装在您的 conda 环境中的 pip)。