Ответ 1
setuptools
поддерживает эту функцию с помощью маркеров среды.
install_requires=[
'enum34;python_version<"3.4"',
'pywin32 >= 1.0;platform_system=="Windows"'
]
Использование этого подробно описано в официальной документации . На основе журнала изменений был добавлен в v20.5, но реализация была нестабильной до v20.8.1 (это был всего лишь разрыв 15 дней).
Оригинальный ответ (по-прежнему действителен, но может быть устаревшим в будущем):
setuptools
имеет поддержку этого использования в аргументе extras_require
.
Формат выглядит следующим образом:
extras_require={
':python_version=="2.7"': ["mock"],
},
Он будет поддерживать другие операторы сравнения.
К сожалению, он не упоминается в документации . При поиске ответов я нашел PEP-426, говорящий о "маркерах окружающей среды". С этой фразой мне удалось найти файл setuptools со следующим комментарием:
Я успешно использовал функцию маркеров для выборочного и декларативного запроса зависимости. См. backports.unittest_mock для примера. Через "дополнительные функции" требуется mock, но только на Python 2. Когда я могу положиться на Setuptools 17.1, я могу изменить эту зависимость на
python_version < "3.3"
.