如何在PyPI中配置包以仅使用pip3进行安装

时间:2016-09-02 19:13:47

标签: python python-3.x pypi

我在PyPI上分发了用Python 3编写的包。它可以由pip2pip3安装。如何将程序包配置为仅在Python 3中可用;即只能安装pip3

我已经在setup.py文件中添加了这些分类符:

classifiers=[
    ...
    # Supported Python versions.
    'Programming Language :: Python :: 3',
    'Programming Language :: Python :: 3.4',
    'Programming Language :: Python :: 3.5',
    ...
]

但它仍然可以由pip2安装。

2 个答案:

答案 0 :(得分:3)

我不确定是否存在这样的选项。你可以做的是通过检查安装它的python的版本是否大于你想要的版本来手动强制执行它:

from sys import version_info

class NotSupportedException(BaseException): pass

if version_info.major < 3:
    raise NotSupportedException("Only Python 3.x Supported")  

虽然这不会阻止它从pip2到达,但它应该阻止任何试图使用旧版Python的用户

答案 1 :(得分:1)

pip 9.0.0setuptools 24.2.0起,您可以在python_requires中添加setup()关键字作为setup.py参数。这应该可以完全满足您的需求。

以下是一些有关如何运作的示例(摘自the docs): 如果您的软件包仅适用于Python 3+,请写:

python_requires='>=3',

如果您的软件包适用于Python 3.3及更高版本,但您还不愿意提交Python 4支持,请写下:

python_requires='~=3.3',

如果您的软件包是针对Python 2.6,2.7以及从3.3开始的所有Python 3版本,请写:

python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4',