LINUX.ORG.RU

numpy в зависимостях

 ,


0

2

Всем привет. Я тут недавно впервые поставил Gentoo, типа, сколько живу на свете, а генту ни разу не ставил... ладно, неважно XD Есть такая полезная штука как numpy, но меня несколько удивляют зависимости от неё:

$ sudo equery depends numpy
 * These packages depend on numpy:
dev-python/pygtk-2.24.0-r4 (dev-python/numpy[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
$ sudo equery depends pygtk
 * These packages depend on pygtk:
dev-python/notify-python-0.1.1-r3 (>=dev-python/pygtk-2.24:2[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
net-misc/wicd-1.7.4-r3 (gtk ? dev-python/pygtk[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
x11-misc/sunflower-0.2_alpha59 (>=dev-python/pygtk-2.15.0[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
Это что, для того, чтобы поставить двухпанельник sunflower, мне действительно необходимы все возможности numpy? А то по времени компиляции и занимаемому месту она далеко не на последней позиции. Да и вообще не хочет собираться до конца после каких-то моих манипуляций, но это уже другой вопрос.

NumPy is the fundamental package for scientific computing with Python
двухпанельник sunflower
Наверное будет тебе параллельно экзопланеты искать.
Такие вот быдлокодеры.

Kroz ★★★★★
()

Это потому что «Нужна использовать стандартные библиотеки, а не велосипедить, яскозал».

anonymous
()

Это гентуспецифичная проблема, изначально возникшая на префиксе, которую так никто и не решил

Если вкратце - сложно согласовать USE-флаги с пакетами которые способны детектить наличие зависимостей в рантайме.

Например поставил ты пакет с USE="-foo", а зависимость foo доставил отдельно(прочитав где-нибудь, что она решает проблему с неполной работой твоего пакета). В результате пакетный менеджер думает, что foo не нужна для твоего пакета, а у тебя всё работает. А потом ты выполнил emerge --depclean, ненужный никому(по мнению пакетного менеджера) foo удалился(если ты его поставил как зависимость с -1) и ты снова наступаешь на грабли.

В случае зависимостей, которые решаются во время компиляции максимум на что ты можешь напороться - это автомагия. Тут эта автомагия выходит на уровень выполнения.

Другого решения кроме как вводить USE-флаги, которые могут вызывать проблемы описанные выши в принципе нет. И делают это крайне неохотно. Обычно просто в pkg_postinst для ебилда проблемного софта помещают текст в стиле «если вам нужны дополнительные фичи - доустановить пакет такой-то». Но это сложно назвать полноценным решением проблемы.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от anonymous

бюрократия в Дженте - это просто трэш и угар; жаль, что взяток не берут.

Deleted
()
Ответ на: комментарий от Pinkbyte

Это гентуспецифичная проблема

То есть numpy можно сносить после установки pygtk и зависящего от него софта, так что ли? :)

В принципе, шут с ним, как выяснилось, это не numpy мне останавливала пересборку мира в последний раз. Со второго захода всё собралось, теперь PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" (из-за чего и была затеяна пересборка). Но наткнулся на ту же проблему, что здесь в середине темы.

Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    from setuptools import setup, find_packages
ImportError: No module named 'setuptools'

Предложенный там вариант:

emerge -aO1 dev-python/setuptools dev-python/certifi
emerge -auDN @world
не помог. Какие ещё будут предложения?

al_exquemelin ★★★
() автор топика
Ответ на: комментарий от Pinkbyte

открою. только поди будет как с багом на qbittorrent, к-рый Zlogene пометил как «Resolved - Info Needed». скорее всего, висняком так и останется.

Deleted
()
Ответ на: комментарий от Pinkbyte

/etc/python-exec/python-exec.conf

python3.5 в последней строчке. Нужно заменить на 3.6 через eselect, да?

emerge -1Opv setuptools portage

These are the packages that would be merged, in order:

[ebuild   R    ] dev-python/setuptools-36.7.2::gentoo  USE="{-test}" PYTHON_TARGETS="python2_7 python3_6 (-pypy) (-pypy3) -python3_4 -python3_5" 0 KiB
[ebuild   R    ] sys-apps/portage-2.3.40-r1::gentoo  USE="(ipc) native-extensions rsync-verify xattr -build -doc -epydoc -gentoo-dev (-selinux)" PYTHON_TARGETS="python2_7 python3_6 (-pypy) -python3_4 -python3_5" 0 KiB

Total: 2 packages (2 reinstalls), Size of downloads: 0 KiB
al_exquemelin ★★★
() автор топика
Ответ на: комментарий от Pinkbyte

Вооот, другое дело. Теперь и setuptools находится, и pkg_resources, и всё прочее. Спасибо!

al_exquemelin ★★★
() автор топика
Ответ на: комментарий от Deleted

Этот баг? Да ладно!

Я понимаю, что можно багрепорты и на словах принимать типа «там чё-то где-то как-то не работает, разберитесь», но давай пожалуйста не будем

Прикрепить файл к багу - не rocket science, как минимум не сложнее заливки в pastebin. И также как и выкладка на pastebin - возможно даже из консоли

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

приложите лог, иначе валите нах - лучшая политика Дженты. немудрено, что писать багрепорты многих ломает.

Deleted
()
Ответ на: комментарий от Deleted

Конечно, давай мы забъем на автоматические валидаторы, тиндербокс и всё прочее, что пилится под нашу багзиллу и напрямую влияет на качество проекта - сугубо потому что автоматические тулзы дают +100500 к разгребанию рутины. Давайте на всё это забъем и будем жить вообще без стандартов - ведь серьезно, кому они нужны?

Я понимаю, что нужно быть user-friendly. Но о себе забывать тоже не стоит.

Нормально оформленный багрепорт - уже треть пути к решению проблемы.

Напоминаю еще раз - ты смог выложить файл на pastebin. Наверняка использовал для этого какой-нибудь wgetpaste. Что, кроме очевидной лени, помешало тебе использовать такой же консольный pybugz или любой другой интерфейс для багзиллы - решительно не ясно.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

Кстати да. 40 метров какого-то ненужно.

Только у меня это inkscape притянул.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Deleted

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

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Deleted

только поди будет как с багом на qbittorrent

Для свежей стабильной версии этот патч не применяется, в live build его применение сейчас отключено. Сам баг с пометкой «need info» был закрыт до предоставление какой-либо информации. То есть первоначально вообще не было понятно, что произошло.

Ну да ладно, баг и баг. Сейчас то 9999 собирается?

grem ★★★★★
()
Ответ на: комментарий от Deleted

Насколько я в итоге понял, баг в том, что не применяется патч. Если нет, то я вообще из описания ничего не понял.

Раз уж описание такое неоднозначное, то где «steps to reproduce»?

grem ★★★★★
()
Ответ на: комментарий от grem

баг в том, что указанных перенных уже нет CMakefile.txt. т.е. их нельзя задать, конфигуратор сам определяет их наличие. по-моему, и так ясно, что имеется в виду.

CMake Warning:
  Manually-specified variables were not used by the project:

    DBUS
    GUI
    SYSTEM_QTSINGLEAPPLICATION
что тут не ясного-то?

Deleted
()
Последнее исправление: Lifun (всего исправлений: 2)
Ответ на: комментарий от Deleted

Мне лень пароль восстанавливать от багзиллы сейчас, если соберусь запрашивать обновление одной софтины, то добавлю инфу в описание бага об этом.

grem ★★★★★
()
Ответ на: комментарий от Deleted

Не совсем, например, вместо GUI теперь связка DISABLE_GUI и Qt5Widgets_FOUND; вместо SYSTEM_QTSINGLEAPPLICATION - QtSingleApplication; вместо DBUS - Qt5DBus. Но наличие всего этого в системе теперь определяется автоматически.

А так как это изменение внесено 5 июня и с тех пор пока ни одной новой версии не выходило, то следующих ebuild для пакета определённо потребует внесения ряда изменений.

grem ★★★★★
()
Ответ на: комментарий от Deleted

Ну как недействительны ... они просто ни на что не влияют. А подправить было б неплохо. Насколько я понял принудительно сборку без gui при установленном qt5 не отключить. Или можно отключить флагом X?

grem ★★★★★
()
Ответ на: комментарий от Deleted

хотя возможно я перепишу девятки с использованием autotools, мне он проще дается

Zlogene
()
Ответ на: комментарий от Deleted

кому надо numpy, тот поставит. а кому не надо, нафига впаривать?

Если бы КАЖДАЯ программа писала бы в лог что «ой, а вот эта фича вам не доступна, потому что у вас не установлен пакет foo» - тогда и не пришлось бы «впаривать». Вот откуда ты еще узнаешь что что-то у тебя не работает, потому что не установлен какой-то пакет, если программа в которой фича заточена на этот пакет об этом не говорит?

ccsm вот к примеру имел зависимость от модуля sexy-python кажется, так он сразу при старте говорил что-то типа «sexy-python not found, do not worry, it's optional». И там сразу было всё понятно.

В общем я с официальной позицией согласен, но только потому, что методов, которые удовлетворят всех(отсутствие автомагии и вменяемый user expirience) тупо нет.

Возможно с введением dynamic USE-flags у нас появится аналог чего-то типа suggested/recommended dependencies в бинарных дистрибутивах, но пока этого нет.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Если бы КАЖДАЯ программа писала бы в лог что «ой, а вот эта фича вам не доступна, потому что у вас не установлен пакет foo» - тогда и не пришлось бы «впаривать».

Вот, подобная ситуация в Debian c recommended пакетами - никогда не знаешь заранее, что у тебя не будет поддерживаться в софтине, если ты к ней эти пакеты не доустановишь.

И до кучи такая же ситуация с рядом софтин, которые для работы некоторых фич или вообще хотят gstreamer и его плагины (openoffice, libreoffice). Тот же elisa, поставленный на посмотретьлушать, после установки вообще ничего не играл у меня, пока я вручную плагины не поставил. Нужно бы фич-реквест зарепортить, чтобы добавили use флаги, добавляющие поддержку определённых форматов: а то либо всё подряд приходится ставить, либо гадать, «а чего ещё то не хватает?»

grem ★★★★★
()
Ответ на: комментарий от grem

Я как-то написал ебилд со всеми доступными опциями. 100 юзов мне не понравились, в следующей версии половину опций сломали или переписали, а также добавили ещё 10 новых и ебилд пришлось дополнять нетривиальной логикой.

Gstreamer плохой пример, то что его опциональные пакеты нужны для опциональной поддержки форматов это нормально, если приложение полностью полагается на него. Я бы даже сказал это абсолютно ожидаемое и привычное поведение.

anonymous
()
Ответ на: комментарий от anonymous

Gstreamer плохой пример, то что его опциональные пакеты нужны для опциональной поддержки форматов это нормально

У его плагинов такое описание, что часто вообще невозможно понять, поддержку чего он добавляет. Я понимаю, что разработчик плагинов тот ещё фанат Серджио Леоне, но описание этих пакетов не даёт ничего, а чтобы просто добавить поддержку воспроизведения mp3, flac, m4a и пары других - придётся поставить почти все остальные, не забыв для отдельных ещё и дополнительные флаги включить, которые не упомянуты в meta пакете. Все конечно перебор, но хотя бы самые распространённые чтобы флагами описывались.

grem ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.