Могу ли я создать одно яйцо для нескольких версий Python? - PullRequest
4 голосов
/ 26 мая 2011

У нас есть локальная система, которая работает через серию яиц.На данный момент это означает, что у всех должна быть установлена ​​копия Python 2.5.Можно ли создать яйцо, которое можно использовать в Python 2.5, 2.6 и 2.7 (в идеале также в любых более поздних версиях)?

Очевидно, что код python должен будет работать во всех трех версиях.Также очевидно, что это яйцо не может содержать никаких расширений C.Чуть менее очевидно, что яйцо должно содержать исходные файлы (.py) Python, а не файлы .pyc.

Кроме того, я знаю, что мы могли бы создать три яйца (или, возможно, скопировать одно яйцо с тремя именами)- но это кажется неправильным.

1 Ответ

2 голосов
/ 03 июня 2011

Распространение только исходного архива; easy-install (или pip или buildout, или какой-либо менеджер / установщик зависимостей пакетов, который вы используете) создаст яйцо для вас для версии python, использованной для его установки.

Вам нужно создавать яйца только для распространения только для пакетов с расширениями C, а затем только для Windows, поскольку в большинстве систем Windows отсутствуют инструменты, необходимые для создания яйца.

Взгляните на PyPI, чтобы увидеть множество примеров этого, например, страницу zope.interface . Обратите внимание, что для Python версий 2.4, 2.5 и 2.6 для Windows существуют только дистрибутивы .egg. Все остальное просто использует загрузочный архив .tar.gz и создает .egg локально при необходимости.

Вы создаете архив с исходным кодом, используя команду setup.py sdist. Лично я пользуюсь jarn.mkrelease ; он автоматизирует большую часть процесса для вас (например, загрузку исходного дистрибутива на сервер распространения).

...