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

envsm3lx  于 2023-01-19  发布在  Python
关注(0)|答案(6)|浏览(126)

有没有办法将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

但是在此之后yum给出误差。

-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

我是不是漏掉了什么
注意:这与Linux CentOS 7, how to set Python2.7 as default Python version?的问题相似但相反

6mzjoqzu

6mzjoqzu1#

如果这

sudo ln -fs /usr/bin/python3.5 /usr/bin/python

不起作用(应该)
你可以用下面的命令在你的/home/.bashrc中添加一个别名:

alias python="/usr/bin/python3.5"

如果这也不起作用,你应该只使用虚拟环境。阅读page开始。

chhqkbe1

chhqkbe12#

我建议使用**替代品***。
以超级用户(
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 which Python version to use
alternatives --config python

最后一个命令将要求您在已注册/已安装的***替代项***之间进行选择。
和往常一样,在大多数情况下,您可以使用这个简单的命令来查看手册(linux man pages

man alternatives

注:
尽管这个答案指的是/利用特定的 * Python * 版本,* alternatives * 命令,它的概念和用法与版本号无关。强烈建议你阅读/学习更多关于***alternatives***命令的内容,以便理解它如何帮助你更好地管理和使用你的系统。另外,有一个很好的机会,一些人将纠正目前在他们的机器上使用的不良/不寻常的做法。我看到它与绝大多数人,我介绍的概念。这里是一个link to a very good and simple explanation of the alternatives command

kx5bkwkv

kx5bkwkv3#

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

ln -s /usr/bin/python3 /usr/bin/python

并在/usr/bin/yum文件中使用#!/usr/bin/python 2更新shebang行
备选办法2)使用替代品

alternatives --install /usr/bin/python python /usr/bin/python3.x 60
alternatives --config python

选项3)在bash_profile中创建别名

alias python="/usr/bin/python3"
x3naxklr

x3naxklr4#

问题是,Linux CentOS 7如何将Python3.5.2设置为默认Python版本?
我想补充@OldFart的回答(不幸的是,我不能发表评论)。
例如,

update-alternatives --install /usr/bin/python python /usr/bin/python2 50

将python 2备选项的优先级设置为50,并且

update-alternatives --install /usr/bin/python python /usr/bin/python3.5 60

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

update-alternatives --config python

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

olhwl3o2

olhwl3o25#

我想提供一些额外的背景,围绕为什么yum在OP中被打破,为什么我认为alternatives方法是最好的方法。也许还有其他最佳实践,但我已经取得了一些发现,并希望分享我的发现。
假设3.5.2为:
1.单独安装(按照OP的建议),类似于以下步骤:源代码中的Python安装过程
1../configure的--前缀选项已从默认的--前缀= /usr/local/bin更新为--前缀= /usr/bin/python3
将/usr/bin/python3位置的“单独安装的3.5.2”链接到/usr/bin/python位置的系统python的命令覆盖或修改了系统python,破坏了yum。
这种方法补充了@OldFart的答案,并希望围绕单独安装的Python可能导致问题的根本原因提供一些额外的观点。
update-alternatives对于我遇到的类似问题来说是一股新鲜空气

hts6caw3

hts6caw36#

使用alternatives将默认值设置为python3.6仍然会破坏yum。为了修复,请在两个文件中将python解释器更改为/usr/bin/python2.7

[root@centos7 ~]# cat /usr/bin/yum
#!/usr/bin/python2.7
[root@centos7 ~]# cat /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.7

我发现下面的文章很有用:https://rakeshjain-devops.medium.com/how-to-install-python-3-on-centos-7-7-using-yum-and-source-and-set-as-default-1dee13396f7

相关问题