CentOS上的python升级

CentOS上的python升级,python,python-2.7,centos,Python,Python 2.7,Centos,使用CentOS并从Python2.6升级到Python2.7.8,我通过从源代码构建成功地进行了升级。但似乎python命令(/usr/bin/python)仍然指向旧的python2.6版本?想知道将默认的python命令更改为指向python2.7位置(即/usr/local/bin/python2.7)的安全方法是什么 在centOS上将python2.6升级到2.7的简单方法是: 您可以创建符号链接来解决此问题: $ /usr/bin/python -V Python 2.6.x $

使用CentOS并从Python2.6升级到Python2.7.8,我通过从源代码构建成功地进行了升级。但似乎
python
命令(
/usr/bin/python
)仍然指向旧的python2.6版本?想知道将默认的
python
命令更改为指向python2.7位置(即
/usr/local/bin/python2.7
)的安全方法是什么


在centOS上将python2.6升级到2.7的简单方法是:

您可以创建符号链接来解决此问题:

$ /usr/bin/python -V
Python 2.6.x
$ move /usr/bin/python /usr/bin/python2.6.x
$ ln -sf /usr/local/bin/python2.7 /usr/bin/python
$ which yum
/usr/bin/yum
$ head -1 /usr/bin/yum
#!/usr/bin/python
$ sed -i -e 's|python|python2.6.x|' /usr/bin/yum
$ head -1 /usr/bin/yum
#!/usr/bin/python2.6.x

但是,我发现这个答案比我的好:

对于CentOS,您最好使用软件集合库中的预构建Python版本:


这是专门构建的,以便能够安全地与Python系统共存。Red Hat将二进制文件放在一起,以便为开发人员和运行非系统应用程序的人员提供更多最新的Python版本。

像这样替换系统Python二进制文件可能是一个非常糟糕的主意。系统工具可能取决于特定版本的系统Python以及要安装的特定Python包。按照您的建议操作可能会破坏您的操作系统,甚至可能无法启动。目前,将Linux发行版中的系统Python更新为全新版本的唯一安全方法是将您的操作系统升级到一个版本,该版本具有您想要的较新Python版本作为默认版本。与正在运行的操作系统相关的应用程序对系统Python的依赖性使得替换系统Python过于危险。也许您应该解释一下为什么需要更新系统Python。您可能出于错误的原因而想这样做,并且有更好的解决方案来解决您的问题。@GrahamDumpleton我认为,在创建符号链接之前,我们可以将/usr/bin/python2.6.x移动到/usr/bin/python2.6.x,让yum和其他人使用/usr/bin/python2.6.x,这就足够了。@LinMa比我的方法好。不,您不应该替换它。这会给你带来麻烦。如另一期中所述,不要使用
#/在您自己的脚本中使用usr/bin/python
,但是
#/usr/bin/env-python
,最好也使用python虚拟环境。如果您首先解释了为什么要这样做,那么您可以提供建议。感谢nepaul,我遵循类似的步骤,但我要问的问题是如何安全地替换您发布的指南中的默认
python
命令,它生成可执行的
python2.7
,而不是
python
——与我的情况相同。因此,我不应该在centos中安装python 3.x,因为它提供了python 2.7?如果不是这样,我如何在其中使用django 2.0.3?创建一个新问题,而不是在评论中提问。在新问题中提供与您的情况相关的所有详细信息。
$ /usr/bin/python -V
Python 2.6.x
$ move /usr/bin/python /usr/bin/python2.6.x
$ ln -sf /usr/local/bin/python2.7 /usr/bin/python
$ which yum
/usr/bin/yum
$ head -1 /usr/bin/yum
#!/usr/bin/python
$ sed -i -e 's|python|python2.6.x|' /usr/bin/yum
$ head -1 /usr/bin/yum
#!/usr/bin/python2.6.x