LINUX.ORG.RU

Как правильнее на Debian 12 поставить python3.10

 , ,


0

1

Очень нужно иметь именно 3.10, потому что драйвера ROCm для видеокарт AMD GPU хотят или 3.8 или 3.10 питон. 3.11 их не устраивает, как я понял. Некоторый другой софт (PyTorch) тоже захочет 3.10.

Можно попробовать из Sid взять, но это чревато тем, что рано или поздно apt-get update сломается. Или всю систему надо делать unstable, что тоже не хотелось бы...

★★★★★
Ответ на: комментарий от praseodim

дичь какая-то по ссылке.

если так хочется собрать, то собирай сразу пакет - все нужное для сборки на том-же shapshot’е есть - так хоть систему не изуродуешь…

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

Хрень какая-то. Что просто параллельно поставить python и потом спросить через update-alternatives какой главный уже не модно?

dpkg: warning: downgrading python3 from 3.11.2-1+b1 to 3.10.6-3+b1
dpkg: regarding python3_3.10.6-3+b1_amd64.deb containing python3, pre-dependency problem:
 python3 pre-depends on python3-minimal (= 3.10.6-3+b1)
  python3-minimal is installed, but is version 3.11.2-1+b1.

dpkg: error processing archive python3_3.10.6-3+b1_amd64.deb (--install):
 pre-dependency problem - not installing python3
Errors were encountered while processing:
 python3_3.10.6-3+b1_amd64.deb
praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Это ж не энтрепрайз-джава, чтобы заводить для скриптиков alternatives. 2.6 и 3 можно было держать одновременно.

Для 3.10 у меня всё ещё стоят (и не мешают 3.11): libpython3.10, libpython3.10-minimal, libpython3.10-stdlib

python3.10 и python3.10-minimal, вроде, тоже не должны конфликтовать, если их доустановить.

И есть пакет, какой питон использовать по-умолчанию. Вот, когда переключились на 3.11:

python3-defaults (3.11.1-1) unstable; urgency=medium

  * Default to python 3.11.
...
 ... Mon, 02 Jan 2023 16:35:47 +0100
gag ★★★★★
()
Ответ на: комментарий от gag

Это ж не энтрепрайз-джава, чтобы заводить для скриптиков alternatives. 2.6 и 3 можно было держать одновременно.

У меня и сейчас после debian 11 остался python 3.9 параллельно с 3.11. Хотя в репах его нет. Не мешается, только дефолтный 3.11 и все.

python3.10 и python3.10-minimal, вроде, тоже не должны конфликтовать, если их доустановить.

Так видишь выше, при попытке поставить 3.10 сразу ругань, что конфликт и отказ ставить. Может я запутался и просто не знаю как это сделать?

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

Так видишь выше, при попытке поставить 3.10 сразу ругань, что конфликт и отказ ставить. Может я запутался и просто не знаю как это сделать?

В образе контейнера?

Кстати, есть уже готовые с количеством закачек около миллиона :)

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

В образе контейнера?

Нафиг контейнер?! Неужели более прозрачного решения нет?! У меня 3.9 со старой системы спокойно сейчас стоит в параллель и не мешается.

По ссылке https://www.linuxcapable.com/how-to-install-python-3-9-on-debian-linux/ пробовал собирать 3.10 он собирается и ставится с make altinstall и не мешается, можно работать даже (на паре программ несовместимости не вылезло), но к сожалению, не видится amdgpu-install, даже если libpython вручную прописать везде. Да и нет там дебианутного деления на кучи подпакетов.

Я уже думал немного похачить amdgpu-install но там как-то очень сложно, напрямую вообще не видно, где проверка, надо рыться в куче дополнительных файлов. И не факт, что корректно будет без правильного дебиан-представления.

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

Нафиг контейнер?! Неужели более прозрачного решения нет?! У меня 3.9 со старой системы спокойно сейчас стоит в параллель и не мешается.

IMHO использование Python за пределами контейнеров и особенно в mutable системах (где запускаются apt апдейты, инсталы и апгрейды) очень чревато потенциальными проблемами, ибо Python очень любит ломать свои зависимости. Часть проблем решается использованием venv, но полностью гарантировать безглючную постоянную готовность к работе можно только в хорошо протестированном образе контейнера, несколько старых версий которого хранятся довольно долго.

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

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

Проблема контейнеров, в том, что мне надо, чтобы amd rocm видел установленный в системе libpython3.10. И как его поправить я не понимаю, это не просто deb-пакет с зависимостями.

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

при попытке поставить 3.10 сразу ругань, что конфликт и отказ ставить.

Дело в том, что есть …, python3.9, python3.10, python3.11, python3.12 и python3-defaults. Кроме последнего они не должны конфликтовать. А последний решает, какой питон будет отзываться на python и прочее. Вот бинарные пакеты, относящиеся к исходному python3-defaults надо ставить в последнюю очередь, когда установлены все бинарные пакеты к исходному python3.xx.

А та ругань о том, что пакет python3 из defaults имеет зависимости от других пакетов из своего же defaults, которые тоже надо установить.

dpkg: warning: downgrading python3 from 3.11.2-1+b1 to 3.10.6-3+b1
  python3-minimal is installed, but is version 3.11.2-1+b1.

Значит, нужен python3-minimal такой же старой версии: 3.10.6-3+b1.

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

Что мне потом делать с докером с rocm? Я так понимаю, что докер - это в основном серверное решение, когда задеплоил куда-то на настроенный комплект и оно работает.

Мне же надо, чтобы я мог прозрачно в каком-то GUI редакторе (обычно jupyter-notebook) редактировать программу и тут же ее запустить и чтобы она и rocm и все прочее использовала, а не совать каждый раз ее перед запуском в докер, в расшареную папку, потом туда переходить в консоли и т.д.

Я уже пытался так с докером работать осенью - очень неудобно для десктопной работы.

На отдельном компе в Ubuntu 22.04 нативно все-таки смог тогда поставить и rocm и прочие программы. Думал, что в Debian тоже смогу, но такие вот засады.

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

Что мне потом делать с докером с rocm? Я так понимаю, что докер - это в основном серверное решение, когда задеплоил куда-то на настроенный комплект и оно работает.

А удалённая отладка (программы в контейнере) не устраивает?

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

А удалённая отладка (программы в контейнере) не устраивает?

Не устраивает. Удаленного взаимодействия с докером уже наелся месяца три назад (там был не rocm, немного другое) и в общем хочется прозрачно локально все.

В общем, если не найду способа поставить все это удобным образом в Debian придется его или снести или в дуалбут поставить Ubuntu 22.04

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

Исходный python3.10 содержит такие бинарные пакеты: https://packages.debian.org/source/sid/python3.10. В архиве: https://snapshot.debian.org/package/python3.10/.

Исходный python3-defaults - https://packages.debian.org/source/sid/python3-defaults. В архиве: https://snapshot.debian.org/package/python3-defaults/.

То есть сначала ставится python3-minimal 3.10 - й?

Ага.

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

Не устраивает. Удаленного взаимодействия с докером уже наелся месяца три назад (там был не rocm, немного другое) и в общем хочется прозрачно локально все.

Что именно не устраивает?

А с помощью Vimspector, наверно, можно даже сразу внутри контейнера отлаживать?

Кстати, в контейнере неплохо работает JetBrains, и VSCode/Codium, вероятно, тоже. К десктопу подключается по сокету X11 через volumes. Думаю, любой другой IDE сможет точно также, в т.ч. и Spyder.

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

Что именно не устраивает?

Ну во-первых, готового докера сразу и с rocm и c pythorch я что-то не заметил. Еще повозиться придется.

Во вторых, не устраивает, что программы надо туда/сюда копировать. Кроме того, прошлый раз в докере у меня так толком и не заработал c GPU jupyter-notebook. Его как-то под это дело тоже повозиться надо, чтобы работал. Вообще в том докере все было гвоздями прибито, даже модуль pandas в python не удалось просто так поставить. Нативно все проще работало.

В третьих, ну в принципе желательно, чтобы rocm не только для питона был.

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

Исходный python3.10 содержит такие бинарные пакеты: https://packages.debian.org/source/sid/python3.10. В архиве: https://snapshot.debian.org/package/python3.10/.

Что-то уже запутался что откуда ставить.

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

Но кстати, там https://github.com/RadeonOpenCompute/ROCm-docker/blob/master/quick-start.md до докера так и не доходит:

# amdgpu-install --usecase=rocm
Hit:1 http://security.debian.org/debian-security bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease                  
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease          
Get:4 https://repo.radeon.com/amdgpu/5.7.3/ubuntu jammy InRelease [5,465 B]
Get:5 https://repo.radeon.com/rocm/apt/5.7.3 jammy InRelease [2,617 B]
Get:6 https://repo.radeon.com/amdgpu/5.7.3/ubuntu jammy/main amd64 Packages [13.5 kB]
Get:7 https://repo.radeon.com/rocm/apt/5.7.3 jammy/main amd64 Packages [29.4 kB]
Fetched 51.0 kB in 1s (43.9 kB/s)   
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 rocm-gdb : Depends: libpython3.10 but it is not installable or
                     libpython3.8 but it is not installable
E: Unable to correct problems, you have held broken packages.

По-любому что-то с питоном надо сделать.

Или предлагаешь на убунту сделать докер и потом ставить его на дебиане? Что может так заработает?

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

Ну, я не знаю, откуда у тебя python3 3.10.6-3+b1. Оттуда теперь и python3-minimal 3.10.6-3+b1 взять. Я, просто, привёл примеры, откуда бы я брал пакеты.

Потом снова смотреть, на что ругается, и доустанавливать.

gag ★★★★★
()
Ответ на: комментарий от praseodim
 rocm-gdb : Depends: libpython3.10 but it is not installable or
                     libpython3.8 but it is not installable

Можно пытаться ставить вручную подобные зависимости, на которые ругается apt, до тех пор, пока всё не поставится.

Вероятно, придётся вносить какие-то исправления в нынешнюю установку, возможно сносить или менять версии каких-то установленных пакетов и т.п.

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

Ладно завтра (вернее сегодня) попробую снова. В сущности мне надо просто при этом не развалить систему заменив нечаяно python 3.11 на 3.10 (если оно перестанет сопротивляться)

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

Можно пытаться ставить вручную подобные зависимости, на которые ругается apt, до тех пор, пока всё не поставится

Это не apt ругается. Это скрипт amdgpu-install и я не нашел где в нем ругань и проверка, он в свою очередь какие-то другие скачивает и вызывает.

P.S. А вообще это маразм амд-ных драйверо-писателей: сделать драйвер зависимым от питона. Должны были разделять на разные пакеты.

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

Разве это сообщение выдаёт не apt ?

Если и apt, то откуда-то изнутри.

https://amdgpu-install.readthedocs.io/en/latest/install-script.html

Сорцы в репе сразу не нашел, закинул на https://pastebin.com/3Cvem58m пароль bh6S4EXUSS

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

Ну так ставь вручную libpython3.10, раз контейнеры тебя не устраивают.

Apt ещё ругнётся на зависимости, разруливай их.

А потом, когда поставишь libpython3.10, опять запускай скрипт. :)

sanyo1234
()

Можно на время подцепить репу от 10 дебиана, но что-то мне кажется ты не ту репу с rocm выбрал. А вообще есть conda если нужны разные питоны не общесистемно. Pytorch точно можно из conda поставить.

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

Я вот Python много раз собирал врукопашную, только зависимостей надо побольше ставить нужных. Очень просто питон собирается, и PIP3 в нем сразу работает

Пытаться это через репозитории, ну можно, выставлять alternatives и так далее. Можно рассмотреть вариант самостоятельной сборки. Python реально очень легко собирается

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

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

Что-то тут копать придется по-любому.

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

у меня старый 9 дебиан, но в системе к 3.5 из реп стоит и 3.6 и 3.7

whereis python

python: /usr/bin/python3.7m /usr/bin/python3.5 /usr/bin/python /usr/bin/python3.6m /usr/bin/python3.7 /usr/bin/python3.6 /usr/bin/python3.5m /usr/bin/python2.7 /usr/lib/python3.5 /usr/lib/python3.4 /usr/lib/python3.7 /usr/lib/python3.6 /usr/lib/python2.6 /usr/lib/python2.7 /etc/python3.5 /etc/python3.4 /etc/python /etc/python3.7 /etc/python3.6 /etc/python2.7 /usr/local/lib/python3.5 /usr/local/lib/python3.7 /usr/local/lib/python3.6 /usr/local/lib/python2.7 /usr/include/python3.5m /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz

ставил python3.6-minimal libpython3.6-minimal libpython3.6-stdlib

python3.7-minimal libpython3.7-minimal libpython3.7-stdlib

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

На правах предположения, можно ли обмануть этот скрипт так, чтобы оно думало что нужные пакеты стоят. По каким то признакам оно понимает что они есть, и быть может они какие то стандартные вот как у pkg-config например

А если есть исходники - вылечить скрипт в этих местах, я так обычно и делаю

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от praseodim

ну собери python3.10 в виде пакета под дебиан. спеки на сборку можешь в ubuntu/след релизе взять или через alien сгенерировать. Только поправь, чтобы они системный python не меняли

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