常见问题(FAQ)

错误信息:

# yum search package
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

如果我们在系统上设置了默认的python是Python3,则需要将yum的Shebang更改为Python2,因为yum只能在Python2下工作:

# vi /usr/bin/yum
将
#!/usr/bin/python
更改为
#!/usr/bin/python2.7

通用:

Downloading packages:
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
Exiting on user cancel

该问题也是 Python 3被设置为默认全局版本。
要修复此错误,编辑/usr/libexec/urlgrabber-ext-down脚本:

# vi /usr/libexec/urlgrabber-ext-down
将
#!/usr/bin/python
改成
#!/usr/bin/python2.7
在Fedora Linux上如何切换Python版本

列出Fedora系统上可用的所有Python版本:

# ls /usr/bin/python*
/usr/bin/python   /usr/bin/python2.7         /usr/bin/python3    /usr/bin/python3.4m           /usr/bin/python-coverage
/usr/bin/python2  /usr/bin/python2-coverage  /usr/bin/python3.4  /usr/bin/python3-mako-render

现在,检查默认Python版本:

# python -V
Python 2.7.8

如果只想针对某个用户修改Python版本,只需在主目录下创建(修改)一个新的别名“.bashrc”

$alias python='/usr/bin/python3.4'
$. ~/.bashrc
$python --version
Python 3.4.2

要全局更改python版本,请首先检查“alternations”命令是否已注册python替代版本:

# alternatives --list | grep -i python

没有输出意味着尚未配置替代python版本。使用'alternative'命令注册上面列出的两个python版本。

# alternatives --install /usr/bin/python python /usr/bin/python3.4 2
# alternatives --install /usr/bin/python python /usr/bin/python2.7 1

上面命令中,我们指定了“Python3.4”有更高的优先级“2”,所以现在默认的Python的版本是3.4。

# python -V
Python 3.4.1

在Python版本之间进行切换:

# alternatives --config python
There are 2 programs which provide 'python'.
  Selection    Command
----------------------------------------------
*+ 1           /usr/bin/python3.4
   2           /usr/bin/python2.7
Enter to keep the current selection[+], or type selection number: 2
[root@localhost fedora]# python -V
Python 2.7.8
日期:2020-07-07 20:55:09 来源:oir作者:oir