Linux CentOS 7,如何将Python3.5.2设置为默认的Python版本?

mua*_*aaz 21 python centos python-3.5

有没有办法将Python 3.5.2设置为CentOS 7上的默认Python版本?目前,我默认安装了Python 2.7,单独安装了Python 3.5.2.

我使用了以下命令

mv /usr/bin/python /usr/bin/python-old
sudo ln -fs /usr/bin/python3 /usr/bin/python
Run Code Online (Sandbox Code Playgroud)

但在那之后yum给出了错误.

-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这里有什么我想念的吗?

注意:它与Linux CentOS 7类似但相反的问题,如何将Python2.7设置为默认的Python版本?

Old*_*art 29

我建议改用"替代品".作为超级用户(root)运行以下内容:

# start by registering python2 as an alternative
alternatives --install /usr/bin/python python /usr/bin/python2 50
# register python3.5 as an alternative
alternatives --install /usr/bin/python python /usr/bin/python3.5 60
# Select the python to use
alternatives --config python
Run Code Online (Sandbox Code Playgroud)

最后一个命令会要求您在两种选择之间进行选择.

与往常一样,大多数情况下,您可以使用这个简单的命令查看手册(联机帮助页)

man alternatives
Run Code Online (Sandbox Code Playgroud)

干杯

  • 正如手册页所述,它与选项的“权重”或优先级有关。如果没有手动选择替代方案,则优先级较高的优先级优先。 (2认同)

Lia*_*iam 26

如果这

sudo ln -fs /usr/bin/python3 /usr/bin/python
Run Code Online (Sandbox Code Playgroud)

不起作用(它应该)

您可以/home/.bashrc使用此命令为您添加别名:

alias python="/usr/bin/python3.5"
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,你应该只使用虚拟环境.阅读此页面即可开始使用.

  • 有人说:“我相信,Yum本身是用Python实现的。因此,删除Python可以很好地解决问题!” 在这里评论https://serverfault.com/questions/844677/server-wiped-after-yum-remove-python (2认同)
  • 我建议替代方法 (2认同)

Dry*_*_09 10

选项1)创建软链接实际上有一个缺点。“yum”不支持Python3。因此,如果您仍然决定创建符号链接,那么您还需要更新 /usr/bin/yum

ln -s /usr/bin/python3 /usr/bin/python
Run Code Online (Sandbox Code Playgroud)

并在 /usr/bin/yum 文件中使用 #!/usr/bin/python2 更新 shebang 行

选项 2) 使用替代方案

alternatives --install /usr/bin/python python /usr/bin/python3.x 60
alternatives --config python 
Run Code Online (Sandbox Code Playgroud)

选项 3)在 bash_profile 中创建别名

alias python="/usr/bin/python3"
Run Code Online (Sandbox Code Playgroud)


小智 5

问题来了,Linux CentOS 7,如何将Python3.5.2设置为默认Python版本?

希望补充@OldFart的答案(不幸的是,我无法发表评论)。

当将 install 参数与 update-alternatives 一起使用时,您可以在自动模式下设置优先级。隐含地表示,如果没有手动设置替代方案,则具有最高优先级的替代方案将成为默认替代方案。以上面的答案为例

update-alternatives --install /usr/bin/python python /usr/bin/python2 50
Run Code Online (Sandbox Code Playgroud)

将设置 python2 替代方案的优先级为 50,并且

update-alternatives --install /usr/bin/python python /usr/bin/python3.5 60
Run Code Online (Sandbox Code Playgroud)

将设置 python3.5 替代方案的优先级为 60。默认情况下,python 3.5 成为 python 命令的默认 python 可执行文件。

如果你想更改默认的 python 替代方案,

update-alternatives --config python
Run Code Online (Sandbox Code Playgroud)

发现这是一个更好的方法,因为我不必修改我的路径文件。

  • 附带说明一下,“update-alternatives”是您在基于 debian 的发行版上使用的内容。redhat 和相关的“替代品”受到前者的启发,但并不相同。“update-alternatives”是 redhat 发行版上“alternatives”的符号链接,我相信它可以帮助服务器管理等顺利从 debian 到 redhat 的过渡。我认为最好将其包含在内,因为 OP 明确表示他使用 centos 版本。 (4认同)