【问题标题】:Python Redhat version issue [duplicate]Python Redhat 版本问题[重复]
【发布时间】:2012-07-03 03:11:15
【问题描述】:

可能重复:
Upgrade python without breaking yum

我正在运行 Redhat VM(2.6.18-274.el5 64 位)。我在 vm 上安装了 nodejs 以使用 browserstack。为了让 nodejs 运行,我必须将 Python 升级到 2.6 或更高版本。我使用 make altinstall 从源代码安装了 2.7。然后我创建了一个从 2.4 指向 2.7 的硬链接。检查 python -V 现在显示 2.7 是默认值。一切正常,节点现已启动并运行。

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.2 (default, Jul  2 2012, 23:35:52) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://wiki.linux.duke.edu/YumFaq

我的问题是百胜。它不再工作,因为它正在寻找 2.4 的旧版本 Python?无论如何,我可以让它们都像在 Yum 和 node 中一样使用不同的版本吗?

【问题讨论】:

  • 你不应该尝试在redhat机器上替换系统python。相反,您可以在例如 /usr/local 中安装更新的 python,并将其用于需要它的脚本。

标签: python linux node.js redhat


【解决方案1】:

这里有两个问题。一是你破坏了你的系统python。 Yum 安装在 python 的站点包中。如果你损坏了 python,yum 就会坏掉。破坏系统python安装是一个愚蠢的想法。也许你做了备份,或者有另一台可以移植原始 2.4 python 的姐妹机器。

另一个问题是在同一台机器上拥有多个 python 没有问题。要安装 Node.js,您必须简单地告诉它使用哪个 python。在运行./configure之前设置PYTHON=/opt/local/my/path/to/python2.7/bin/python,也可能设置PYTHONHOME

【讨论】:

  • Tadeusz,我不认为有问题。我应该能够删除硬链接并恢复到 /usr/bin 文件夹中的 2.4 python,除非我在这里遗漏了什么?在这种情况下删除硬链接会有所帮助还是有其他选择?
  • 顺便说一句,当 RHEL 6.8 - 7.3 升级工具在我删除 python 之前拒绝升级时,我遇到了同样的问题。终于得到了我的新 rhel 7.3 并且没有包管理器,即使它安装了 python 2.7.8 并且它抱怨找不到 python 2.7.8。
【解决方案2】:

你不应该覆盖系统 Python;太多的脚本依赖于了解该解释器的行为。您可以在/usr/local 中安装更新版本的 Python,然后根据需要使用 Python 包virtualenv 进一步隔离您的环境。

【讨论】:

  • 原来的python还在系统的/usr/bin目录下。 2.7 安装在 /usr/local/bin 目录中。删除硬链接会不会恢复到以前的版本,还是我必须通过强制安装来安装原始版本?
  • 试试看。这取决于您是否做了除了链接之外的任何其他事情,我真的无法确定。
猜你喜欢
  • 1970-01-01
  • 2017-10-05
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多