setup.py: restrict the allowable version of the python interpreter

雨燕双飞 提交于 2019-11-26 09:47:11

问题


I have a python library. Unfortunately I have not updated it to work with python 3 yet.

in its setup.py, I added

install_requires=[\'python<3\'],

My intent was to not allow this package to be installed / used under python 3, because I know it doesn\'t (yet) work. I don\'t think this is the right way to do it, because pip then tries to download and install python 2.7.3 (which is already the installed version!).

How should I specify my library dependency on a particular range of python interpreter versions? Should I add a Programming Language :: Python :: 2 :: Only tag? Will this actually prevent installation under python 3? What if I also want to restrict the minimum version to python 2.6?

I\'d prefer a solution that works everywhere, but would settle for one that only works in pip (and hopefully doesn\'t cause easy_install to choke).


回答1:


As of version 9.0.1 pip will honor a new python_requires string, specifying the python version required for installation, eg:

setup(
    ...,
    python_requires=">=3.3"
)

See here for more details. See also this answer on SO.




回答2:


a possible solution is to test for the python version, since pip can't satisfy the python version except for the version it's currently running in (it installs in the current python environment):

import sys
if not sys.version_info[0] == 2:
    sys.exit("Sorry, Python 3 is not supported (yet)")

setup(...


来源:https://stackoverflow.com/questions/13924931/setup-py-restrict-the-allowable-version-of-the-python-interpreter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!