Допустим, у меня есть простая библиотека, которая использует setuptools для упаковки и распространения.Для библиотеки в этом случае также требуется минимальная версия Python 3.6, то есть мой setup.py будет выглядеть примерно так:
from setuptools import setup, find_packages
setup(
name='something',
version='0.0.1',
description='description',
long_description=long_description,
# More metadata
packages=find_packages(exclude=['tests', 'docs']),
python_requires='>=3.6'
)
Теперь, когда я запускаю python setup.py bdist_wheel
, я получаю файл с именем something-0.0.1-py3-none-any.whl
.Как видно здесь, wheel игнорирует параметр python_requires
в setuptools
при определении тега Python для моего колеса (это должно быть py36
, но это значение по умолчанию py3
).Очевидно, я понимаю, что могу просто передать --python-tag py36
из командной строки, которая выполнит эту работу, но служба непрерывного развертывания, которую я использую для развертывания моей библиотеки, принимает только имя используемого мной дистрибутива (bdist_wheel
).Поэтому я не могу передать никакие параметры командной строки.
После небольшого исследования я обнаружил, что могу наследовать от класса bdist_wheel
и переопределить переменную-член python_tag
, но в соответствии с колесом.README:
Следует отметить, что колесо не предназначено для использования в качестве библиотеки, и поэтому отсутствует стабильный общедоступный API.
Из-за этого я хочу избежать наследования от класса bdist_wheel
, который может вынудить меня переписывать мой класс каждый раз, когда происходит какое-либо критическое изменение.
Есть ли альтернативный способ через setuptools, который позволяет мнепередать тег Python для колеса?