如何修复 -- bash: /usr/bin/python: 符号链接的级别太多
Posted
技术标签:
【中文标题】如何修复 -- bash: /usr/bin/python: 符号链接的级别太多【英文标题】:How to fix -- bash: /usr/bin/python: Too many levels of symbolic links 【发布时间】:2020-02-17 21:11:03 【问题描述】:我想让 python3 成为我在 rhel 上的默认设置,所以我在 How to set Python3.5.2 as default Python version on CentOS? 上关注了以下内容
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 蟒蛇
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
【问题讨论】:
ls -l /usr/bin | grep python
显示什么?
一堆!我将结果放在问题的底部@LampToast
ln -fs /usr/bin/python /usr/bin/python
使/usr/bin/python
成为自身的符号链接,从而创建符号链接的无限循环。相反,您应该将 /usr/bin/python
设置为指向其他其中一个的符号链接。
【参考方案1】:
这行结果
lrwxrwxrwx 1 root root 15 Oct 21 14:12 python -> /usr/bin/python
告诉我们符号链接 python
指向它自己,这会给您“太多级别”错误。
您可以通过以下方式删除链接
rm python
或使用重置到 python3 的链接
ln -fs /usr/bin/python3 /usr/bin/python
(可能这两个都需要 sudo)
不过,yum
安装错误是一个单独的问题
【讨论】:
感谢您花时间解释这一点。返回 python3 python -V Python 3.6.8【参考方案2】: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 保持为默认设置的理由。
附:我对 RHEL 不熟悉,但这一切都符合我在 Ubuntu 上的经验。
【讨论】:
以上是关于如何修复 -- bash: /usr/bin/python: 符号链接的级别太多的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 -- bash: /usr/bin/python: 符号链接的级别太多