Принудительная версия 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

2 ответа

Решение

Как 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')

Текущая лучшая практика (на момент написания статьи в марте 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; см. документацию для получения дополнительной информации.

Другие вопросы по тегам