Принудительная версия python в setup.py
В настоящее время мы устанавливаем\устанавливаем некоторые пакеты в системе, указывая их версию и зависимости в файле setup.py в атрибуте install_requires. Для нашей системы требуется python 2.7. Иногда пользователи имеют несколько версий python, скажем, 2.6.x и 2.7, некоторые пакеты, которые, по его словам, уже доступны, но фактически находятся в системе, доступной в списке пакетов сайтов 2.6. Кроме того, некоторые пользователи имеют только 2.6, как принудительно использовать setup.py, или есть ли другой способ сказать, что у него есть только python 2.7, и все пакеты, которые мы хотим установить setup.py для обновления, всего 2.7. Для запуска нашего кода требуется минимум 2,7 на машине.
Спасибо!
Santhosh
Ответы
Ответ 1
Поскольку файл setup.py
устанавливается через pip
(и pip
сам запускается интерпретатором python), невозможно указать, какую версию Python использовать в файле setup.py
.
Вместо этого посмотрите этот ответ на setup.py: ограничьте допустимую версию интерпретатора python который имеет базовое обходное решение для остановки установки.
В вашем случае код будет выглядеть следующим образом:
import sys
if sys.version_info < (2,7):
sys.exit('Sorry, Python < 2.7 is not supported')
Ответ 2
Текущая лучшая практика (python_requires
с этой статьи в марте 2018 года) заключается в том, чтобы добавить аргумент python_requires
непосредственно к вызову setup()
в setup.py
:
from setuptools import setup
[...]
setup(name="my_package_name",
python_requires='>3.5.2',
[...]
Обратите внимание, что для этого требуется setuptools> = 24.2.0 и pip> = 9.0.0; см. документацию для получения дополнительной информации.