Yum因键盘中断错误而崩溃

SSA*_*ERR 27 redhat yum python-3.x 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
Run Code Online (Sandbox Code Playgroud)

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

小智 47

因为yum剂量不支持Python3.您可以运行命令vi /usr/bin/yum,更改/usr/bin/python/usr/bin/python2第一行.因此,您可以yum通过Python2而不是运行命令Python3.

  • 对于 AWS Linux 2 AMI 用户:如果即使更新 /usr/bin/yum 也出现 OSError,请确保文件开头:/usr/libexec/urlgrabber-ext-down 也编辑为 python2 (4认同)

Dam*_*ngh 18

当用户升级到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)

坦克,达曼


cas*_*evh 14

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

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

cd /usr/bin
sudo ln -s python2 python
Run Code Online (Sandbox Code Playgroud)


小智 6

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

这是一个有点题外话,可以删除,但可能会对某人有所帮助。

这些是我在Centos上安装Python 3.7并修复yum错误的步骤。

https://www.python.org/下载

tar -xvf
./configure --enable-optimizations

make
make install
Run Code Online (Sandbox Code Playgroud)

要么

make altinstall
Run Code Online (Sandbox Code Playgroud)

make altinstall用于防止替换默认的python二进制文件/ usr / bin / python。

cd /usr/bin
Run Code Online (Sandbox Code Playgroud)

删除当前符号链接到以前的版本

rm python
Run Code Online (Sandbox Code Playgroud)

输出:rm:删除符号链接“ python”?ÿ

查找新版本的位置

whereis python3.7
 OUTPUT: python3: /usr/local/bin/python3.7
Run Code Online (Sandbox Code Playgroud)

验证这是正确的

  /usr/local/bin/python3.7 --version
  OUTPUT: Python 3.7.0
Run Code Online (Sandbox Code Playgroud)

创建一个指向新版本位置的符号链接

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

python --version
Run Code Online (Sandbox Code Playgroud)

输出:Python 3.7.0

Yum命令将显示以下错误:

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

  SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

将此文件的顶行从使用python更改为python2

  vi /usr/bin/yum 
    #!/usr/bin/python2
Run Code Online (Sandbox Code Playgroud)

参考:https : //tecadmin.net/install-python-3-7-on-centos/


小智 5

真正的答案是——确保您回到可支持的 python 版本(如果您正在查看 RHEL 7 的问题)。

cd /usr/bin
sudo unlink python
sudo ln -s python2 python
Run Code Online (Sandbox Code Playgroud)