87

我有一个运行 CentOS 的 shell。

对于我正在做的一个项目,我需要 python 2.5+,但 centOS 非常依赖 2.4。

根据我的阅读,如果升级到 2.5,很多事情都会中断。

我想将 2.5 与 2.4 分开安装,但我不知道该怎么做。到目前为止,我已经下载了源 tarball,解压缩了它,并做了一个./configure --prefix=/opt我希望它结束​​的地方。我现在可以make, make install吗?或者还有更多?

4

15 回答 15

80

您也可以使用EPEL-repository,然后sudo yum install python26安装 python 2.6

于 2010-11-08T08:13:04.897 回答
32

试试epel

wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
sudo rpm -ivh epel-release-5-4.noarch.rpm
sudo yum install python26

python 可执行文件将在/usr/bin/python26

mkdir -p ~/bin
ln -s /usr/bin/python26 ~/bin/python
export PATH=~/bin:$PATH # Append this to your ~/.bash_profile for persistence

现在,python命令将执行python 2.6

于 2011-12-02T05:43:45.543 回答
29

当我遇到类似的情况时,我通常会避开包管理器,尤其是如果破坏某些东西会很尴尬,例如生产服务器。相反,我会去 Activestate 下载他们的二进制包:

https://www.activestate.com/activepython/downloads/

这是通过运行将所有内容放入文件夹并且不触及任何系统文件的脚本来安装的。事实上,您甚至不需要 root 权限来设置它。然后我将二进制文件的名称更改为 apy26 之类的名称,将该文件夹添加到 PATH 的末尾并开始编码。如果您使用或使用 virtualenv 和 easyinstall 安装软件包apy26 setup.py install,那么您将拥有一个灵活的 Python 环境,而无需触及系统标准 Python。

编辑... 最近我做了一些工作来为 Linux 构建一个可移植的 Python 二进制文件,该二进制文件应该在任何发行版上运行,没有外部依赖项。这意味着可移植 Python 模块所需的任何二进制共享库都是构建的一部分,包含在 tarball 中并安装在 Python 的私有目录结构中。这样,您可以为您的应用程序安装 Python,而不会干扰系统安装的 Python。

我的 github 站点有一个构建脚本,该脚本已在 Ubuntu Lucid 10.04 LTS 32 位和 64 位安装上进行了全面测试。我也在 Debian Etch 上构建了它,但那是不久前的事了,我不能保证我没有改变任何东西。最简单的方法是您只需将您选择的 Ubuntu Lucid 放在虚拟机中,检查脚本,git clone git://github.com/wavetossed/pybuild.git然后运行脚本。

构建完成后,在任何最近的 Linux 发行版上使用 tarball。将它移动到一个目录有一点问题,除了/data1/packages/python272你必须在移动目录之前运行包含patchelf来设置解释器路径。这会影响任何二进制文件/data1/packages/python272/bin

所有这些都基于使用 RUNPATH 构建并复制依赖的共享库。尽管该脚本位于多个文件中,但它实际上是一个以 /etc/rc.d 目录样式排列的长 shell 脚本。

于 2009-10-16T21:24:22.640 回答
29

无需做 yum 或制作自己的 RPM。python26从源代码构建。

wget https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
tar -zxvf Python-2.6.6.tgz
cd Python-2.6.6
./configure && make && make install

可能存在依赖错误使用

yum install gcc cc

将安装路径(/usr/local/bin/python默认)添加到~/.bash_profile.

它不会破坏yum或任何其他依赖的东西python24

于 2011-02-15T08:58:21.137 回答
25

不,就是这样。您可能想确保您也安装了所有可选的库头文件,这样您以后不必重新编译它。它们列在我认为的文档中。

此外,如果您这样做,您甚至可以在标准路径中安装它make altinstall。这样它就不会覆盖您当前的默认“python”。

于 2009-09-23T10:08:08.317 回答
12

Chris Lea为 python26 RPM 提供了一个 YUM 存储库,它可以与 CentOS 上许多管理工具所需的“本机”2.4 共存。

至少对我有用的快速说明:

$ sudo rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
$ sudo yum install python26
$ python26
于 2009-09-30T13:18:24.280 回答
3

当你安装你的 python 版本(在本例中是 python2.6)然后发出这个命令来创建你的virtualenv

virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/
于 2014-07-09T21:02:43.607 回答
3

如果你想让自己更轻松,网上有一些用于新 Python 版本的 CentOS RPM。例如见:

http://www.geekymedia.com/python_26_centos.html

于 2009-09-23T10:02:10.747 回答
2

派对迟到了,但 OP 应该与BuildoutVirtualenv 一起使用,并完全回避了这个问题。

我目前在 Centos 服务器上工作,好吧,辛勤工作是恰当的术语,我可以向所有人保证,我能够在使用与火硬化长矛等效的软件时眨眼的唯一方法是扩展。

于 2010-05-06T09:32:23.670 回答
1

您可以随时制作自己的 RPM:

http://www.grenadepod.com/2009/12/26/building-python-2-6-4-rpm-for-centos-5-4/

于 2009-12-30T15:26:38.637 回答
1

缺少依赖项:libffi.so.5 在这里:

ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm

于 2011-01-22T05:31:31.950 回答
1
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

下载并安装 Python 3.3.0

# wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
# tar xf Python-3.3.0.tar.bz2
# cd Python-3.3.0
# ./configure --prefix=/usr/local
# make && make altinstall

下载并安装适用于 Python 3.3 的分布式

# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz
# tar xf distribute-0.6.35.tar.gz
# cd distribute-0.6.35
# python3.3 setup.py install

为 Python 3.3 安装和使用 virtualenv

# easy_install-3.3 virtualenv
# virtualenv-3.3 --distribute otherproject

New python executable in otherproject/bin/python3.3
Also creating executable in otherproject/bin/python
Installing distribute...................done.
Installing pip................done.

# source otherproject/bin/activate
# python --version
Python 3.3.0
于 2013-07-15T11:14:34.123 回答
1
rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
rpm -Uvh ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm
yum install python26
python26

对于那些只是不知道的事情:=)

于 2011-03-12T15:59:41.630 回答
0

I unistalled the original version of python (2.6.6) and install 2.7(with option make && make altinstall) but when I tried install something with yum didn't work.

So I solved this issue as follow:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Download the RPM package python-2.6.6-36.el6.i686.rpm from http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6.6-36.el6.i686.rpm.html
  3. Execute as root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Done

于 2013-07-03T00:31:37.397 回答
-1

在终端上输入以下命令在 CentOS 7 上安装 Python 3.6:

$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm

然后做 :

$ sudo yum install python36u 

您还可以通过将 36 替换为您的版本号来安装任何版本而不是 3.6(如果您愿意)。

于 2018-01-25T07:27:29.563 回答