我知道 setup.py 有一个 --target-version=2.6 选项,可以与上传一起使用,但这似乎并不意味着“2.6 或更高”
它实际上是 bdist_wininst 或 bdist_msi 的一个选项,并且确实不包括“或更高”。
setup 命令有一个 install_requires 选项,但这是用于必需的包,而不是 Python 解释器。
也许将“Python >= 2.6”放在 install_requires 中可能会起作用:Python 2.5 到 3.2 创建一个 Python-blahblah-pyXY.egg-info 文件,所以如果幸运的话,easy_install 可能会发现要求得到满足。如果不是,它可能会尝试从 PyPI 下载,所以呃...
我可以在 'foo 0.2.0' 的 setup.py 中做这样的事情: if sys.hexversion < 0x02060000: raise RuntimeError('This package requires Python 2.6 or later, try foo 0.1.7')
这其实是现在的常用成语。此外,使用“Programming Language :: Python :: XY”分类器将为人类提供信息(我不知道有任何工具使用该信息)。
短期内,还是有希望的。Python 分发元数据的规范已更新,最新版本确实包含一个需要特定 Python 版本的字段:http: //www.python.org/dev/peps/pep-0345/#requires-python
关于工具支持:distutils 被冻结并且不支持它,setuptools 可能会也可能不会添加支持,它的 fork 分发可能会获得支持,并且 distutils2/packaging 已经支持它。distutils2 包含一个名为 pysetup 的基本安装程序,它应该尊重 Requires-Python 字段(如果没有,请向 bugs.python.org 报告)。
现在,要立即解决您的问题,您可以执行以下操作之一: - 声明您的项目仅支持 2.6+ - 记录 2.4 用户在下载时需要固定版本(例如 pip install "foo==0.1.7" )