Форум сайта python.su
Мда. Спор уровня детского сада(дурак - сам дурак) продолжать не буду. Если есть доводы - приводите, поспорим.Вообще-то приводить доводы - дело человека делающего утверждение, а только потом - отрицающее его.
Учитывая тот бардак, который имеет место быть в setuptools/distutils/distribute/pip/продолжите сами, я бы сильно поопасался этим пользоваться, если есть нормальный дистр, пакетная база которого нормально мэйнтэйнится.1. Что значит “бардак”. В чём именно он проявляется?
Офлайн
FerromanДа хотя бы в невозможности удалить поставленное с помощью easy_install. Вся эта куча тулзов, каждая из которых вроде как выглядит как решение, а на деле делает что-то нормально, что-то не делает вообще, а что-то плохо. Это и есть бардак в моем понимании.
1. Что значит “бардак”. В чём именно он проявляется?
2. Обычно, питоновские пакеты весьма медленно обновляются в дистрах. Обычно из-за того, что попадают в репы только те пакеты, которые используются другими пакетами. Джанга, например, в этот перечень не входит, а следовательно, сильно отстаёт от релиза.Зависит от дистра. Но в общем не вижу в этом большой проблемы. Возьмем данный конкретный случай. Вы уверены, что топикстартер попросил распоследний python-xml? Что его не устроит то, что есть у него в дистрибутиве?
$ sudo apt-get install --dry-run openerp-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libgnomekbd3 console-terminus libclutter-gtk-0.8-0 xulrunner-1.9 libexiv2-5 gir1.0-gtk-2.0 libclutter-0.8-0 libkadm5clnt6 liblzma0 libavahi-gobject0
libpoppler4 gir1.0-clutter-0.8 gnome-js-common libmozjs1d console-setup libclutter-cairo-0.8-0 libxklavier12 libmaa1 xulrunner-1.9-gnome-support
gir1.0-freedesktop gir1.0-glib-2.0 libnautilus-burn4
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
libhippocanvas-1-0 python-hippocanvas
Suggested packages:
openerp-server
The following NEW packages will be installed
libhippocanvas-1-0 openerp-client python-hippocanvas
0 upgraded, 3 newly installed, 0 to remove and 258 not upgraded.
Inst libhippocanvas-1-0 (0.3.0-3+b1 Debian:testing)
Inst openerp-client (5.0.6-2 Debian:testing)
Inst python-hippocanvas (0.3.0-3+b1 Debian:testing)
Conf libhippocanvas-1-0 (0.3.0-3+b1 Debian:testing)
Conf openerp-client (5.0.6-2 Debian:testing)
Conf python-hippocanvas (0.3.0-3+b1 Debian:testing)
3. Пакетировать самому? Зачем? Есть же готовые способы установки/обновления, так зачем же надо оборачивать и так нормальные пакеты ещё раз?Чтобы интегрировать их в более зрелую систему пакетов, естественно. От того, что вы смешаете нативные пакеты дистра и питоновые яйца ничего, кроме бардака не будет. Впрочем на вкус и цвет, как говорится …
Отредактировано (Фев. 17, 2010 11:28:11)
Офлайн
Да хотя бы в невозможности удалить поставленное с помощью easy_install. Вся эта куча тулзов, каждая из которых вроде как выглядит как решение, а на деле делает что-то нормально, что-то не делает вообще, а что-то плохо. Это и есть бардак в моем понимании.Тогда как так получилось, что у меня с этим “бардаком” не было проблем? То же удаление не понадобилось ни разу. Хотя, может вам оно и надо…
Вы уверены, что топикстартер что попросил распоследний python-xml?Я уже давал джангу как пример. Да и тот же python-xml в моей убунте в репах не значится. Как и на серверном дебиане.
Это хуже, чем собирать по углам распоследние версии python-xml? Сильно сомневаюсь.Тянуть с официальных источников трудно назвать “собиранием по углам”. Да и что за риторика такая?
Чтобы интегрировать их в более зрелую систему пакетов, естественно.Желание хорошее, может вам так удобнее. Но не надо говорить что другие способы плохи только потому что вам так кажется.
Офлайн
Дальнейший спор считаю бессмысленной тратой времени. Вам удобно так, мне эдак. У меня тоже все работает и нет проблем. Мы ничего друг другу уже не докажем. Предлагаю на этом завершить бессмысленное сотрясание воздуха.
Офлайн
Скорее “марание бумаги” хе хе хе.
Смысл был не в том, чтобы вам что-то доказать, а в том, что бы у читающих тред не сложилось впечатление что есть один и только один Ъ путь.
Офлайн
Собственно изначально не шла речь о единственном пути. Если помните, я в самом начале сказал, что вначале нужно попробовать найти пакет, который уже интегрирован в дистр, а уже потом, подумавши, и если очень хочется то можно и easy_install заюзать.
Я правильно понял, что вы хотите продолжить словопрения :) ? У меня в общем-то есть что сказать читающим тред.
Отредактировано (Фев. 17, 2010 13:32:24)
Офлайн
Если помните, я в самом начале сказал, что вначале нужно попробовать найти пакет, который уже интегрирован в дистр, а уже потом, подумавши, и если очень хочется то можно и easy_install заюзать.Вот. Я же придерживаюсь прямо противоположной точки зрения.
Я правильно понял, что вы хотите продолжить словопрения smile ?Я думал, мы уже все высказали своё мнение.
У меня в общем-то есть что сказать читающим тред.Раз есть что сказать, говорите конечно. Не держите в себе ;) .
Офлайн
Я лучше вопросы задам :) Вы мне на них ответите и я побегу переставлять все easy_install-ом :)
1. В моем дистре вот что у меня есть по поводу django:
$ apt-cache show python-django |grep ^Version:
Version: 1.2~beta1-1
Version: 1.1.1-3
Version: 1.0-1
Version: 0.96.1-3.1
Version: 0.96.1-3
Офлайн
1. В моём нету. Менять из-за этого дистр?
2. Уже говорил, что не имел потребности удалять пакеты. Но это достаточно просто
easy_install -m
3. yolk -l
4. Все сразу? Я не знаю как вы, а я апдейчусь на новую версию библиотеки только по необходимости. Тем не менее
yolk -U - покажет наличие новых версий.
easy_install –upgrade SomePackage - обновит нужный пакет.
5. Не знаю. Скорее всего нет, ибо питон сначала будет искать у себя, а уже потом во внешних путях.
6. pydoc SomePackage
7. Ставьте только те, что надо. При установке можно указать версию.
8. Никак. И он не знает. Они все ставятся в разные места. Я, не вникал, но и проблем не встречал.
9. Наверное в документации пакета или на странице pypi. Вы ведь не обновляетесь “просто так”?
10. Я не совсем понял вопрос. У меня стоят сейчас 3 версии питона с разными наборами “яиц”. Для каждого свой. /usr/bin/env python будет брать системный питон. Если надо другой - это надо указать.
Только какое это имеет отношение к предмету разговора?
Обратный вопрос:
Вы когда удаляете питоновский пакет, у которого есть в зависимостях другой питоновский пакет и этот пакет у вас в девелопменте используется, то как вы удалете один и оставляете другой?
Офлайн
1. Вы не ответили на вопрос. Нет, не менять.
2. Я же не только для вас пишу. По-моему удаление - это вполне обычная операция.
“After you've done this, you can safely delete the .egg files or directories, along with any scripts you wish to remove.” - Гы :). Я себе представляю эту незатейливую операцию на кластере машин в несколько десятков.
3. Не слышал о таком. Еще одна полузаброшеная тулза по виду. И это лучше, чем нормальный package management?
4. Речь идет о продакшене. Я использую стабильную ветку дистра и ставлю все апдейты, включая и питоновые с помощью apt-get upgrade. Проблем ни разу не было. Попакетное обновление в данном случае является по моему мнению пустой тратой времени.
7. Очень непроизводительно. Я лучше потрачу это время на пакетирование тех нескольких пакетов, которых нет в дистре :)
9. Нет, я не обновляюсь просто так. см.4 Для пакетов из дистрибутива я могу посмотреть changelog, который приходит вместе с пакетом. Не нужно никуда ходить.
10. Речь идет о том, что в дистрибутиве как правило есть версия питона по умолчанию и достаточная доля уверенности, что большинство пакетов оттуда будут с ней работать. Как только это разбавляется софтом из pypi я не понимаю как за этим следить. Не лазить же в питоновые файлы руками и править там /usr/bin/env python на /usr/bin/env python<версия> в самом деле.
И да, это имеет самое прямое отношение к предмету разговора.
Обратный вопрос:Я наверное не понял вопроса. То есть мне перестал быть нужен пакет a, но он зависит на b, который мне нужен? Беру и удаляю a. apt-get remove a.
Вы когда удаляете питоновский пакет, у которого есть в зависимостях другой питоновский пакет и этот пакет у вас в девелопменте используется, то как вы удалете один и оставляете другой?
Отредактировано (Фев. 17, 2010 16:24:39)
Офлайн