如何修复——bash:/usr/bin/python:符号链接级别太多
How to fix -- bash: /usr/bin/python: Too many levels of symbolic links
我想将 python3 作为我在 rhel 上的默认设置,所以我在
上遵循了以下内容
sudo ln -fs /usr/bin/python3 /usr/bin/python
它将默认值更改为 3.6.8
root@rhel:~# python -V
Python 3.6.8
然后我尝试了 yum install python-pip:
root@rhel:~# yum install python-pip
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
当我尝试其他几个命令时发生了这种情况。我尝试通过
恢复更改
root@rhel:~# sudo ln -fs /usr/bin/python /usr/bin/python
但是我 运行 变成了
root@rhel:~# python -V
bash: /usr/bin/python: Too many levels of symbolic links
根据我在需要断开符号链接的地方阅读的内容,我猜想。以下是我的 /usr/bin/
ls -l /usr/bin | grep python
lrwxrwxrwx 1 root root 15 Oct 21 14:12 python -> /usr/bin/python
lrwxrwxrwx 1 root root 14 Aug 8 05:53 python-config -> python2-config
lrwxrwxrwx 1 root root 9 Aug 8 05:51 python2 -> python2.7
lrwxrwxrwx 1 root root 16 Aug 8 05:53 python2-config -> python2.7-config
-rwxr-xr-x 1 root root 7144 Jun 11 10:34 python2.7
-rwxr-xr-x 1 root root 1835 Jun 11 10:34 python2.7-config
lrwxrwxrwx 1 root root 9 Aug 8 05:51 python3 -> python3.6
lrwxrwxrwx 1 root root 16 Aug 8 05:53 python3-config -> python3.6-config
lrwxrwxrwx 1 root root 20 Aug 8 05:53 python3-debug -> /usr/bin/python3.6dm
-rwxr-xr-x 2 root root 11336 Jun 11 15:17 python3.6
lrwxrwxrwx 1 root root 17 Aug 8 05:53 python3.6-config -> python3.6m-config
-rwxr-xr-x 1 root root 11336 Jun 11 15:17 python3.6dm
-rwxr-xr-x 1 root root 175 Jun 11 15:16 python3.6dm-config
-rwxr-xr-x 1 root root 3396 Jun 11 14:54 python3.6dm-x86_64-config
-rwxr-xr-x 2 root root 11336 Jun 11 15:17 python3.6m
-rwxr-xr-x 1 root root 173 Jun 11 15:16 python3.6m-config
-rwxr-xr-x 1 root root 3403 Jun 11 14:54 python3.6m-x86_64-config
这行结果
lrwxrwxrwx 1 root root 15 Oct 21 14:12 python -> /usr/bin/python
告诉我们符号 link python
指向它自己,这给了你 "Too many levels" 错误。
您可以通过
删除link
rm python
或使用
将link重置为python3
ln -fs /usr/bin/python3 /usr/bin/python
(这两个可能都需要 sudo)
yum
安装错误是一个单独的问题,不过
ln -fs /usr/bin/python /usr/bin/python
创建递归符号链接 - 即它指向自身。
yum
似乎是用 Python 2 语法编写的,因此将符号链接还原为:
sudo ln -fs python2 /usr/bin/python
然后想办法使 Python 3 成为默认值,这不会破坏您的包管理器。例如。 an alias
请参阅 PEP 394 以了解将 Python 2 保留为默认值的理由。
P.s。我不熟悉 RHEL,但所有这些都符合我在 Ubuntu.
方面的经验
我想将 python3 作为我在 rhel 上的默认设置,所以我在
sudo ln -fs /usr/bin/python3 /usr/bin/python
它将默认值更改为 3.6.8
root@rhel:~# python -V
Python 3.6.8
然后我尝试了 yum install python-pip:
root@rhel:~# yum install python-pip
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
当我尝试其他几个命令时发生了这种情况。我尝试通过
恢复更改root@rhel:~# sudo ln -fs /usr/bin/python /usr/bin/python
但是我 运行 变成了
root@rhel:~# python -V
bash: /usr/bin/python: Too many levels of symbolic links
根据我在需要断开符号链接的地方阅读的内容,我猜想。以下是我的 /usr/bin/
ls -l /usr/bin | grep python
lrwxrwxrwx 1 root root 15 Oct 21 14:12 python -> /usr/bin/python
lrwxrwxrwx 1 root root 14 Aug 8 05:53 python-config -> python2-config
lrwxrwxrwx 1 root root 9 Aug 8 05:51 python2 -> python2.7
lrwxrwxrwx 1 root root 16 Aug 8 05:53 python2-config -> python2.7-config
-rwxr-xr-x 1 root root 7144 Jun 11 10:34 python2.7
-rwxr-xr-x 1 root root 1835 Jun 11 10:34 python2.7-config
lrwxrwxrwx 1 root root 9 Aug 8 05:51 python3 -> python3.6
lrwxrwxrwx 1 root root 16 Aug 8 05:53 python3-config -> python3.6-config
lrwxrwxrwx 1 root root 20 Aug 8 05:53 python3-debug -> /usr/bin/python3.6dm
-rwxr-xr-x 2 root root 11336 Jun 11 15:17 python3.6
lrwxrwxrwx 1 root root 17 Aug 8 05:53 python3.6-config -> python3.6m-config
-rwxr-xr-x 1 root root 11336 Jun 11 15:17 python3.6dm
-rwxr-xr-x 1 root root 175 Jun 11 15:16 python3.6dm-config
-rwxr-xr-x 1 root root 3396 Jun 11 14:54 python3.6dm-x86_64-config
-rwxr-xr-x 2 root root 11336 Jun 11 15:17 python3.6m
-rwxr-xr-x 1 root root 173 Jun 11 15:16 python3.6m-config
-rwxr-xr-x 1 root root 3403 Jun 11 14:54 python3.6m-x86_64-config
这行结果
lrwxrwxrwx 1 root root 15 Oct 21 14:12 python -> /usr/bin/python
告诉我们符号 link python
指向它自己,这给了你 "Too many levels" 错误。
您可以通过
删除linkrm python
或使用
将link重置为python3ln -fs /usr/bin/python3 /usr/bin/python
(这两个可能都需要 sudo)
yum
安装错误是一个单独的问题,不过
ln -fs /usr/bin/python /usr/bin/python
创建递归符号链接 - 即它指向自身。
yum
似乎是用 Python 2 语法编写的,因此将符号链接还原为:
sudo ln -fs python2 /usr/bin/python
然后想办法使 Python 3 成为默认值,这不会破坏您的包管理器。例如。 an alias
请参阅 PEP 394 以了解将 Python 2 保留为默认值的理由。
P.s。我不熟悉 RHEL,但所有这些都符合我在 Ubuntu.
方面的经验