Yum се срина с грешка от прекъсване на клавиатурата

Инсталирах по-новата версия на python (3.2.3) от наличната във Fedora16 (python2.7)

И сега yum спира да работи. Показва следната грешка.

[root@localhost yum-3.4.3]# yum
  File "/usr/bin/yum", line 30
   except KeyboardInterrupt, e:
                           ^
SyntaxError: invalid syntax

Моля за съвет как да отстраня грешката. Би било полезно, тъй като не мога да актуализирам или инсталирам нито един пакет.


person SSAMEERR    schedule 26.06.2012    source източник
comment
Не замествайте системния python на машина Fedora. Трябва да сте инсталирали python3 като нещо като /usr/local/bin/python3.   -  person Wooble    schedule 26.06.2012
comment
През 2019 г., когато python2 е почти отхвърлен, не трябва да се притеснявате за свързване на изпълним файл на python3 към /usr/bin/python. Изключително мързеливо е пакет да има този проблем, когато корекцията е буквално да добавите един знак към вашите файлове на python2 (т.е. #!/usr/bin/python2 срещу #!/usr/bin/python)   -  person ThisGuyCantEven    schedule 19.03.2019


Отговори (7)


Тъй като yum не поддържа Python3.
Можете да изпълните команда vi /usr/bin/yum, да промените /usr/bin/python на /usr/bin/python2 в първия ред.
Така можете да изпълните командата yum от Python2 вместо Python3.

Обърнете внимание обаче, че това ще направи вашата настройка неподдържана и следователно неподдържана (както и това, което направихте). Вероятно ще имате други подобни проблеми в бъдеще с други системни пакети.
Ако искате да използвате алтернативна инсталация на Python, помислете дали да не я инсталирате в /usr/local, /opt или да използвате pyenv.

person peakmuma    schedule 09.05.2015
comment
За потребители на AWS Linux 2 AMI: ако получавате OSError дори при актуализиране на /usr/bin/yum, уверете се, че началото на файла: /usr/libexec/urlgrabber-ext-down също е редактирано на python2 - person Gorkem; 13.12.2020

Този проблем възниква, когато потребителят надгражда до python3, просто редактирайте файла --> /usr/bin/yum и променете първия ред на --> "#!/usr/bin/python2"

Горното решение няма да реши всички проблеми със зависимостта на yum, по-добре е да изпълните командите по-долу.

sudo ln -s /usr/local/bin/python3 /usr/bin/python3 (Маркирайте най-новия python като python3)

sudo ln -sf /usr/bin/python2.7 /usr/bin/python (nake 2.7 като Python по подразбиране)

Благодаря, Даман

person Damanvir Singh    schedule 02.01.2018
comment
Опитах всички решения, твоето реши проблема. - person Amir Afianian; 22.05.2019
comment
Да, ти си този, който реши проблема. Добра находка. Благодаря - person mahendra rathod; 28.05.2020

Предполагам, че сте инсталирали Python 3.2.3 от източника и сте използвали "make install" като последна команда. Тази команда има неприятния страничен ефект от замяната на инсталираната в системата команда за версия "python" с новата версия. Използването на "make altinstall" не замества "python".

Командата "python" е просто символна връзка към "python2", която от своя страна е символна връзка към "python2.7". Трябва да можете да възстановите "python", като изпълните следната команда:

cd /usr/bin
sudo ln -s python2 python
person casevh    schedule 27.06.2012
comment
Успях да направя малко по-различно: sudo ln -s python2.6 python - person yehudahs; 04.11.2014
comment
през 2019 г., когато python2 е почти отхвърлен, човек не трябва да се притеснява за свързването на изпълним файл на python3 към /usr/bin/python. Изключително мързеливо е пакетът да има този проблем, когато корекцията е буквално да добавите един знак към вашите python2 файлове (т.е. #!/usr/bin/python2 срещу #!/usr/bin/python) - person ThisGuyCantEven; 19.03.2019
comment
@ThisGuyCantEven OP спомена, че това е във Fedora 16 което е EOL от 02.2013. - person ivan_pozdeev; 08.10.2019
comment
Получих грешка: ln: failed to create symbolic link ‘python’: File exists. Трябва да използвам sudo ln -fs /usr/bin/python2 /usr/bin/python, за да работи. - person Searene; 04.03.2021

Благодаря, Даманвир! Промяната на реда в /usr/bin/yum проработи!

Това е малко извън темата и може да бъде премахнато, но може да помогне на някого.

Това са стъпките, които използвах, за да инсталирам Python 3.7 на Centos и да коригирам грешката yum.

Изтеглете от https://www.python.org/

tar -xvf
./configure --enable-optimizations

make
make install

OR

make altinstall

make altinstall се използва за предотвратяване на подмяната на двоичния файл на python по подразбиране /usr/bin/python.

cd /usr/bin

Премахнете текущата символна връзка към предишната версия

rm python

ИЗХОД: rm: премахване на символна връзка „python“? г

Намерете местоположението на новата версия

whereis python3.7
 OUTPUT: python3: /usr/local/bin/python3.7

Уверете се, че това е правилно

  /usr/local/bin/python3.7 --version
  OUTPUT: Python 3.7.0

Създайте символна връзка към местоположението на новата версия

ln -s /usr/local/bin/python3.7 python

python --version

ИЗХОД: Python 3.7.0

Командите Yum ще покажат следната грешка:

  File "/bin/yum", line 30
      except KeyboardInterrupt, e:

  SyntaxError: invalid syntax

Променете горния ред на този файл от използване на python на python2

  vi /usr/bin/yum 
    #!/usr/bin/python2

Справка: https://tecadmin.net/install-python-3-7-on-centos/

person Code_Help    schedule 20.10.2018

Истинският отговор - да се уверите, че сте отново на поддържана версия на Python (в случай, че търсите това за проблем с RHEL 7).

cd /usr/bin
sudo unlink python
sudo ln -s python2 python
person TheGreatLuke    schedule 29.07.2020

Това е само проблем с двоичната връзка. Можете да копирате работния /usr/bin/python2 от всяка система и да копирате в текущото системно местоположение /usr/bin/python2

#cd /usr/bin

#ln -s python2 python
person Vikas Arora    schedule 10.04.2021

Вашият yum търси python2. Нека използваме „алтернативи“ за превключване между pythons2 и python3.

  • стартирайте --› sudo алтернативи --config python
  • Въведете, за да запазите текущия избор [+], или въведете номер на избор:

Ако не го конфигурирате. Как да стане това?

  • sudo алтернативи --install /usr/bin/python python /usr/local/bin/python3.8 60

  • sudo алтернативи --install /usr/bin/python python /usr/bin/python2 50

person mahesh nanayakkara    schedule 27.07.2021