LINUX.ORG.RU

Задачка про версии python

 ,


1

1

Gentoo stage3 из коробки идут с питоном 2.7 и 3.4, вот так:

~ # eselect python list

Available Python interpreters, in order of preference:
  [1]   python3.4
  [2]   python2.7 (fallback)

Задача: правильно перейти на 2.7, чтобы полностью удалить 3.4, потом установить 3.6 и настроить его дефолтным интерпретатором? Короче простейшая вещь.

Чтобы не было вот такого в результате:

Available Python interpreters, in order of preference:
  [1]   python3.6
  [2]   python2.7
  [3]   python3.4
Хотя никакого питона 3.4 в системе уже нет, ни пакетов собранных с ним, ни его кишок никаких в системе нет, не просто чисто, а суперчисто.

Как делаю я:

  • переключаюсь (default interpreter) на питон 2.7: eselect python set 2
  • смотрю какие пакеты собраны с 3.4: eix -c --installed-with-use python_targets_python3_4
  • пересобираю их временно с 2.7
  • обновляю питон с 3.4 на 3.6
  • собираю ранее собранные с 2.7 теперь уже на 3.6
  • переключаюсь на питон 3.6

Гляньте прикола ради, если вы тоже обновили с 3.4 на 3.6, осталось ли в 'eselect python list' упоминание 3.4, спасибо.

★★

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

Конечно это может быть долгоживущим багом, исключать нельзя.

Bruce_Lee ★★
() автор топика

Гляньте прикола ради, если вы тоже обновили с 3.4 на 3.6, осталось ли в 'eselect python list' упоминание 3.4, спасибо.

У меня осталось( Только я 3.5 ставил.

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

В какой-то момент забил болт на системный питон, стоит по дефолту, а в проектах нужный с pyenv.

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

Подразумевалось, что нужно сделать кроме 'eselect python set' для переключения с 3-го на 2-й питон как текущий интерпретатор.

Возможно я что-то упускаю и поэтому где-то остается немножко следов от 3.4 после его удаления.

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

Или специально для тебя такое условие задачи: как на только разворачиваемом стейдже3, еще без ядра и остального удалить питон 3.4, чтобы остался только 2.7

Например, на полчаса назад скачаном стейдже:

[U] dev-lang/python
     Available versions:  
     (2.7)  2.7.12 2.7.14 ~2.7.14-r1
     (3.4)  3.4.5(3.4/3.4m) ~3.4.6(3.4/3.4m) ~3.4.6-r1(3.4/3.4m)
     (3.5)  3.5.4(3.5/3.5m) ~3.5.4-r1(3.5/3.5m)
     (3.6)  ~3.6.3(3.6/3.6m) ~3.6.3-r1(3.6/3.6m)
       {-berkdb build doc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml ELIBC="uclibc"}
     Installed versions:  2.7.14(2.7)(06:09:57 AM 11/16/2017)(gdbm ipv6 ncurses readline ssl threads wide-unicode xml -berkdb -build -doc -examples -hardened -libressl -sqlite -tk -wininst ELIBC="-uclibc")
но eselect python list видит 3.4:
Available Python interpreters, in order of preference:
  [1]   python2.7
  [2]   python3.4
Может потому, что остались /usr/bin/python3 и /usr/bin/python3-config симлинки на python-exec2c? Не в курсе, но это наверное видит же кто-то кроме меня.

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

Pinkbyte, думаешь это баг?

похоже на то, т.к. несмотря на

Available Python interpreters, in order of preference:
  [1]   python2.7
  [2]   python3.4
'eselect python update' говорит, что 2.7 таки новейший.
Switching to python2.7

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

встудию

grep PYTHON_ /etc/portage/make.conf

ты рили упоротый. Распакуй еще с python.org тарбол в хомяк и установи им через pip python3.7 @ создай груснотред

deity ★★★★
()
Ответ на: комментарий от deity
PYTHON_TARGETS="python3_6"
PYTHON_SINGLE_TARGET="python3_6"
USE_PYTHON="2.7 3.6"

Распакуй еще с python.org тарбол в хомяк и установи им через pip python3.7 @ создай груснотред

не пойму, для это здесь.

Bruce_Lee ★★
() автор топика

вся суть генты

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

не пойму, для это здесь.

переключись на 3.6 и newuse world(смысл переходить на 2 если он в отдельном слоте т.е. для питона 2 ты выбираешь хоть 2.4 хоть 2.5 так же как и для 3), а по уму после gcc и @system я бы emerge -e при новой установке.

И опять же есть часть пакетов которые требуют древних версий, полностью удалить не выйдет ~amd64

  [1]   python3.6
  [2]   python3.5

grep python_ /etc/portage/package.use/package.use

у всех там капц

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

ну короче я пытался, ладно когда школьники тут тупняк устраивали...

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

Всё правильно, это из-за оставшихся симлинков.

$ eselect python list 
Available Python interpreters, in order of preference:
  [1]   python3.5
  [2]   python2.7
  [3]   python3.4
3.4 и в помине нет. Я этот косяк давно заметил.

Nirvandil
()

возникает эта хрень из за срача в /etc/python-exec/python-exec.conf

если оттуда вручную лишние элементы поудалять, всё приходит в норму. а вот срач возникает из за бага в eselect или в портадже или где то ещё

у меня там было

python3.6
python3.5
python3.4
python2.7
python2.7
да, 2.7 дважды. притом что установлены только 2.7 и 3.6

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

Всем спасибо, тогда подождем когда пофиксят.

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