Объясните мне, это чудо реально кем-то востребовано?
Дело в том, что я уже в третий раз пытаюсь вычленить практическое зерно из
этой концепции и никак его не могу ухватить.
Насколько я понял, setuptools — это попытка повторить пакетные менеджеры
linux в мире python. Если это так, а других задач у данной концепции я в
упор не вижу, то задача решена отвратительно:
1. Зависимости. Они прописываются руками и зачастую устарели и не
соответствуют действительности.
2. Нет базы установленных пакетов. То есть, у меня нет инструмента, чтобы
узнать какие пакеты и каких версий у меня установлены.
3. Нет способа обновить все установленные пакеты.
Собственно говоря, мне вообще не понятно, а ради чего все это затевалось.
В мире linux setuptools, imho, абсолютно невостребованы. В состав всех
дистрибутивов, с которыми я работал (Ubuntu, Suse, Arch, Sabayon) входили
собранные пакеты для родного пакетного менеджера системы, который решал все
обозначенные выше проблемы.
Windows? Да насколько я помню, раньше, работая на windows мне было проще
зайти на сайт разработчика пакета и скачать свежую версию.
Здравствуйте, DemAS, Вы писали:
DAS>Я что-то упускаю?
Setup-tools — это не менеджер пакетов.
Эта штука решает следующие задачи:
1. Установка модуля из сорцов. Аналог make install
2. Генерация egg-пакетов
3. Генерация rpm-пакетов
4. Генерация deb-пакетов
5. Генерация инсталяторов для Windows.
Setup-tools очень востребованы среди разработчиков как под Windows так и под Linux.
> Setup-tools очень востребованы среди разработчиков как под Windows > так и под Linux.
Setup-tools может быть сколько угодно востребован разработчиками, но все
это не будет иметь смысла, пока он не станет востребован пользователями.
Поясню, что я имею в виду.
Допустим, мне, как пользователю нужен пакет, к примеру — SqlAlchemy. Что я
делаю:
1. Смотрю, если в моем дистрибутиве собранный пакет.
2. Если нет — иду на сайт разработчика и скачиваю архив с исходниками.
Согласен, что наверное вот эти возможности:
> 3. Генерация rpm-пакетов > 4. Генерация deb-пакетов
и помогаю создавать пакеты для дистрибутивов. Хотя в моем дистрибутиве
(Arch) это не так.
Но вот что заставит меня, как пользователя использовать setuptools (и eggs
в частности), в случае отсутствия пакета, вместо того, чтобы просто скачать
исходники — я, увы, просто не понимаю.
DAS>Но вот что заставит меня, как пользователя использовать setuptools (и eggs DAS>в частности), в случае отсутствия пакета, вместо того, чтобы просто скачать DAS>исходники — я, увы, просто не понимаю.
А после того как вы скачали пакет с исходниками, вы как его устанавливаете?
DAS>Объясните мне, это чудо реально кем-то востребовано?
Да, в моем случае как минимум для:
— написания плагинов (в каталог скидывается egg и он подхватывается фреймворком, например см. http://trac.edgewall.org/wiki/TracPlugins);
— написания скриптов для внутренних нужд (сделать easy_install все-таки попроще чем tar -jxvf);
— написание программ, из которых должны собираться rpm, deb и win-installers.
DAS>1. Зависимости. Они прописываются руками и зачастую устарели и не DAS>соответствуют действительности.
Устаревают они, если разработчик хреновый. Но с другой стороны, зависимости можно прописать только к другим egg-пакетам.
DAS>2. Нет базы установленных пакетов. То есть, у меня нет инструмента, чтобы DAS>узнать какие пакеты и каких версий у меня установлены. DAS>3. Нет способа обновить все установленные пакеты.
Совершенно согласен, плюс у setuptools есть другие недостатки, которые тоже иногда бесят.
DAS>Я что-то упускаю?
А какой есть выбор у разработчиков на Python-е? Собирать ручками RPM-ы и иже с ними намного сложнее чем вызвать ./setup.py bdist_rpm.
>> Setup-tools очень востребованы среди разработчиков как под Windows >> так и под Linux.
DAS>Setup-tools может быть сколько угодно востребован разработчиками, но все DAS>это не будет иметь смысла, пока он не станет востребован пользователями.
А он востребован. Некоторые предпочитают просто вызвать 'python setup.py install' вместо того чтобы руками что-то куда-то копировать.
DAS>Но вот что заставит меня, как пользователя использовать setuptools (и eggs DAS>в частности), в случае отсутствия пакета, вместо того, чтобы просто скачать DAS>исходники — я, увы, просто не понимаю.
Вы не понимаете. Не скачав исходники вы никак не сможете использовать setup-tools.
Здравствуйте, Константин Б., Вы писали:
DAS>>Setup-tools может быть сколько угодно востребован разработчиками, но все DAS>>это не будет иметь смысла, пока он не станет востребован пользователями.
КБ>А он востребован. Некоторые предпочитают просто вызвать 'python setup.py install' вместо того чтобы руками что-то куда-то копировать.
Хотел бы немного уточнить, что есть setuptools, а есть distutils. Первое можно условно назвать форком второго, и основное отличие setuptools — то, что они позволяют делать egg-файлы, и предоставляют минимальную инфраструктуру для их управления. А './setup.py install' позволяют делать обе библиотеки.