Yum因键盘中断错误而崩溃

时间:2012-06-26 18:16:09

标签: python-3.x redhat yum fedora16

我安装了较新版本的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

请告知如何解决错误。这将是有帮助的,因为我无法更新或安装任何包。

7 个答案:

答案 0 :(得分:37)

因为yum不支持Python3。 您可以在第一行运行命令vi /usr/bin/yum,将/usr/bin/python更改为/usr/bin/python2。 因此,您可以按yum而不是Python2运行命令Python3

答案 1 :(得分:13)

我猜你从源代码安装了Python 3.2.3,并使用“make install”作为最后一个命令。该命令具有使用新版本替换系统安装的版本命令“python”的不幸副作用。使用“make altinstall”不能取代“python”。

命令“python”只是“python2”的符号链接,而“python2”又是“python2.7”的符号链接。您应该能够通过执行以下命令来恢复“python”:

cd /usr/bin
sudo ln -s python2 python

答案 2 :(得分:11)

当用户升级到python3时会发生此问题,只需编辑文件 - > / usr / bin / yum并将第一行更改为 - > "#的/ usr /斌/ 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)

谢谢, 达曼

答案 3 :(得分:3)

感谢达曼维尔!更改/ usr / bin / yum中的行有效!

这是一个不太重要的话题,可能会被删除,但可能会帮助某人。

这些是我在Centos上安装Python 3.7并修复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”? y

查找新版本的位置

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/

答案 4 :(得分:1)

真正的答案-确保您使用的是受支持的python版本(如果您正在寻找RHEL 7的问题)。

cd /usr/bin
sudo unlink python
sudo ln -s python2 python

答案 5 :(得分:0)

这只是一个二进制链接问题。您可以从任何系统复制工作 /usr/bin/python2 并复制到当前系统位置 /usr/bin/python2

#cd /usr/bin

#ln -s python2 python

答案 6 :(得分:0)

你的 yum 正在寻找 python2。让我们使用“alternatives”来pythons2python3之间切换。

  • 运行 --> 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