我有一个需要Python 2.4或更高版本的Python 2项目(“foo 0.1.7”)。
现在,我以仍然与Python 2兼容的方式将其移植到Python 3('foo 0.2.0'),但现在的要求已提升到Python 2.6或更高版本。
--target-version=2.6
选项,可以与upload
一起使用,但这似乎并不意味着它是“2.6或更高版本” setup
命令具有install_requires
选项,但这用于必需的软件包,而不是Python解释器。 我可以在'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')
但我希望
easy_install foo
以某种方式解决此问题。那么,我应该如何在PyPI上部署它呢?
最佳答案
听起来您正在寻找的是一种上传程序的0.1.7版和0.2.0版的方法,并让easy_install-2.5自动使用0.1.7,而easy_install-2.6将使用0.2.0。
如果是这种情况,我不确定是否可以在当前系统上使用... raise RuntimeError()
检查可能是当前可用的最佳选择。然后,安装您的项目的人将不得不手动easy_install-2.5 -U "proj<0.2"
或类似的东西。
就是说,目前有一个专门小组致力于用名为distutils
的更新库替换setuptools
,packaging
等。这个新库结合了现有distutils增强库的功能以及许多其他改进。它计划包含在Python 3.3中,然后反向移植为distutils2
。
与您的问题特别相关的是,它对设置元数据进行了许多增强。包括"requires_python"选项,该选项似乎是量身定制的,用于确切指示您想要的信息。但是,我不确定他们打算如何利用这些信息,以及是否会导致新的设置系统像您想要的那样运行。
我建议发布到致力于新系统开发的Google小组the fellowship of the packaging上,他们将能够提供有关requires_python
应该如何工作的详细信息...并可能在底层获得您想要的安装行为似乎可行(并且还不存在)的新系统。
关于python - 分发需要最低Python版本的Python软件包的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7634298/