Подтвердить что ты не робот

Setup.py: ограничить допустимую версию интерпретатора python

У меня есть библиотека python. К сожалению, я еще не обновил его для работы с python 3.

в файле setup.py, я добавил

install_requires=['python<3'],

Мое намерение состояло в том, чтобы не допустить, чтобы этот пакет был установлен/использован под python 3, потому что я знаю, что он еще не работает. Я не думаю, что это правильный способ сделать это, потому что pip затем пытается загрузить и установить python 2.7.3 (это уже установленная версия!).

Как мне указать зависимость моей библиотеки от определенного диапазона версий интерпретатора python? Следует ли добавить тег Programming Language :: Python :: 2 :: Only? Будет ли это фактически предотвращать установку под python 3? Что делать, если я также хочу ограничить минимальную версию python 2.6?

Я бы предпочел решение, которое работает повсюду, но будет соглашаться на тот, который работает только в pip (и, надеюсь, не заставит easy_install задохнуться).

4b9b3361

Ответ 1

По версия 9.0.1 pip будет отмечать новую строку python_requires, указав версию python, необходимую для установки, например:

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

Подробнее см. здесь. См. Также этот ответ на SO.

Ответ 2

возможным решением является проверка версии python, поскольку pip не может удовлетворить версию python, за исключением версии, в которой он в настоящее время работает (он устанавливается в текущей среде python):

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

setup(...