Я знаю, что для setup.py есть параметр --target-version=2.6, который можно использовать с загрузкой, но, похоже, это не означает «2.6 или выше».
На самом деле это вариант для bdist_wininst или bdist_msi, и он действительно не включает «или выше».
В команде установки есть опция install_requires, но она предназначена для обязательных пакетов, а не для интерпретатора Python.
Возможно, сработает установка «Python >= 2.6» в install_requires: Python 2.5 до 3.2 создает файл Python-blahblah-pyXY.egg-info, поэтому, если вам повезет, easy_install может обнаружить, что требование выполнено. Если нет, он, вероятно, попытается загрузить из PyPI, так что ...
Я мог бы сделать что-то подобное в setup.py для «foo 0.2.0»:
На самом деле это текущая распространенная идиома. Кроме того, использование классификаторов «Язык программирования :: Python :: X.Y» даст информацию для людей (я не знаю ни одного инструмента, использующего эту информацию).
В ближайшем будущем есть надежда. Спецификация метаданных дистрибутивов Python была обновлена, и последняя версия содержит поле для требования конкретной версии Python: http://www.python.org/dev/peps/pep-0345/#requires-python
Что касается поддержки инструментов: distutils заморожен и не будет его поддерживать, setuptools может добавить или не добавить поддержку, его форк-дистрибутив, вероятно, получит поддержку, а distutils2/packaging уже поддерживает его. distutils2 включает базовый установщик под названием pysetup, который должен учитывать поле Requires-Python (если нет, сообщите об этом на bugs.python.org).
Теперь, чтобы решить вашу проблему прямо сейчас, вы можете сделать одну из следующих вещей: - заявить, что ваш проект поддерживает только 2.6+ - указать, что пользователям 2.4 необходимо закрепить версию при загрузке (например, pip install "foo==0.1.7" )
person
Éric Araujo
schedule
09.10.2011