对某些应用程序使用 python 2.7,同时为 OS (linux fedora/centos) 保留 python 2.6

Use python 2.7 for some apps, while keeping python 2.6 for the OS (linux fedora/centos)

我如何为某些应用程序使用 python 2.7,同时为 OS 保留 python 2.6?

我正在使用 CentOS6.6(基于 RHEL 6 / Fedora 12),并想安装一些最新的软件包,例如 meld 3.13、最新的 rabbitcvs 等... 它需要 python 2.6 到 运行。

当我尝试 运行 融合 3.13 时,它显示 "Meld requires Python 2.7 or higher."

我已经按照这个教程成功安装了python 2.7 http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

如何告诉 meld 使用 python2.7?

在 CentOS 6 上仅针对某些应用程序安装 python 2.7 而无需触及提供的默认系统 python 2.6 的最佳方法是使用 Software Collections.

查看 software collection python27 的页面,它提供了如何安装它的说明和 link 包。

它是这样工作的:集合将包安装到 /opt/rh/python27 中单独的目录树中,直到 it is enabled.

才生效

在您的情况下,您可以创建包装器脚本,它将 运行 您的版本与 python27 集合融合。例如将以下脚本保存到 ~/bin/meld:

#!/bin/bash
COMMAND="/path/to/your/meld $@"
scl enable python27 "$COMMAND"

然后每次你 运行 meld 命令时,它将由 python2.7 执行(假设你的 meld 在你的 PATH 中尚不可用)。

Packaging Wrappers for Software Collections 中查看更多详细信息(虽然您没有打包任何东西,但包装器的提示似乎对您的情况很有用)。

virtualenv 是一个创建隔离 Python 环境的工具。

例如:

$ python --version  # 2.7.6
$ sudo pip install virtualenv
$ mkdir myproject
$ cd myproject
$ virtualenv -p /usr/bin/python3.4 myenv  # assign python version
$ . myenv/bin/activate
(myenv)$ python --version  # 3.4.3

现在可以在虚拟环境中使用python3.4了。

退出:

$ deactivate