问题
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