#python #setuptools #setup.py #python-wheel
Вопрос:
У нас есть пакет, который работает на версии 2.7 и после версии 3.8, нам нужно сохранить 2.7, чтобы обеспечить поддержку пользователей, которые не переехали, но когда я делаю это в setup.py:
python_requires="== 2.7.*, >= 3.8"
это не работает, когда я устанавливаю сгенерированный файл колеса в 3.8.11, в нем говорится:
ERROR: Package 'mypkg' requires a different Python: 3.8.11 not in '==2.7.*,>=3.8'
почему 3.8.11
бы и нет >= 3.8
? как это можно исправить?
Ответ №1:
Это связано с тем, что запятая ,
действует как логический оператор «и» в спецификаторах версий Python, и ни одна версия не может соответствовать обоим == 2.7.*
и >= 3.8
одновременно.
Поскольку, к сожалению, в спецификаторах версий нет оператора «или», вам придется обойти это, полностью исключив известные несовместимые версии между двумя совместимыми диапазонами:
python_requires=">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*, != 3.7.*"