我最近通过源代码编译在CentOS机器上安装了Python 2.7.3。 Python 2.7.3安装在/opt/python2.7上,当我安装它时,我刚刚更改了/ usr / bin / python以指向新版本。这显然是错误的,因为当我这样做时它打破了百胜。我会得到以下内容。
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.3 (default, May 15 2012, 17:45:42)
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
我将/ usr / bin / python更改为指向python 2.6.6,但现在2.6.6是python的默认版本。知道如何解决这个问题吗?
我已经写了一篇关于如何在CentOS 6和CentOS 7上安装最新版本的Python 2和Python 3的quick guide。它目前涵盖了Python 2.7.13和Python 3.6.0。
您不应该更改Python的系统版本,因为它会破坏系统(正如您所发现的那样)。只要保留原始系统版本,安装其他版本就可以正常工作。这可以通过在运行configure时使用自定义前缀(例如/usr/local
)以及在安装Python构建时使用make altinstall
(而不是正常的make install
)来实现。
只要您记得键入包括版本号的全名(例如“python2.7”或“pip2.7”),就可以使用多个版本的Python。如果您使用virtualenv完成所有Python工作,则会为您处理版本控制,因此请确保安装并使用virtualenv!
vim `which yum`
modify #/usr/bin/python to #/usr/bin/python2.4
把/opt/python2.7/bin
放在PATH
前面的/usr/bin
环境变量中......或者只是习惯于输入python2.7
。
pythonz,pythonbrew的活跃分叉,使这变得轻而易举。您可以安装以下版本:
# pythonz install 2.7.3
然后设置一个符号链接:
# ln -s /usr/local/pythonz/pythons/CPython-2.7.3/bin/python2.7 /usr/local/bin/python2.7
# python2.7 --version
Python 2.7.3
ln -s /usr/local/bin/python2.7 /usr/bin/python
如果你想试用rpm包,可以根据最新的Fedora rpms安装二进制包,但是在RHEL6 / CentOS6 / ScientificLinux-6上重新编译:
http://www.jur-linux.org/download/el-updates/6/
最好的祝福,
Florian La Roche
我读了一篇评论,说明现在可以运行以下命令。我没有测试过自己,所以要小心。
$ yum install -y epel-release
$ yum install -y python36
相反,我建议更新相关脚本中的路径(例如/ usr / bin / yum)以指向您之前的Python作为解释器。
理想情况下,您希望升级yum及其关联的脚本,以便安装的默认Python支持它们。
如果不可能,上述内容完全可行并经过测试。
更改:
#!/usr/bin/python
无论您的旧版本的路径是什么,直到您可以进行上述yum改进。
如果您有一台隔离的机器,没有时间手动升级rpm或无法临时或永久连接到标准yum存储库,则无法执行上述操作的情况。