在CentOS中安装python 2.6


85

我有一个运行CentOS的外壳。

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

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

我想将2.5和2.4分开安装,但是我不确定该怎么做。到目前为止,我已经下载了源tarball,将其解压缩,然后执行了a./configure --prefix=/opt我希望它结束​​的地方。我现在可以make, make install吗?还是还有更多?


8
由于RedHat / CentOS发行版的功能繁琐(Python 2.4 ...),我个人曾经大量使用CentOS并切换到Ubuntu。如果您在政治上可以跳下去,那就去做吧。您会更加快乐,不再需要担心这种事情。
亚当·尼尔森2009年

1
从源代码进行编译并将其安装在/usr/local默认情况下不会造成任何问题。或者,甚至更好,删除垃圾中心并安装debian:P
o0'。

19
??CentOS / RHEL的重点是长期支持。如果可以选择切换到最新版本,那么对于具有CentOS背景的人来说,切换到Fedora比切换到Ubuntu更有意义。
Muhammad Alkarouri 2010年

1
只是要清楚一点,没有任何讽刺性的侧边栏:是的。您可以按照列出的那样从源代码中将更新版本的Python安装到/ opt中。或者默认情况下,它进入/ usr / local / {bin,lib,share,man},它也很好用,并且不会干扰python 2.4,它仍然是CentOS 5中的版本。CentOS6带有python 2.6.6。
IcarusNM 2014年

Answers:


79

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


8
如何使用EPEL:fedoraproject.org/wiki/EPEL/FAQ#howtouse-但如果不是32位x86,请记住将i386替换为arch
rakslice 2010年

为我工作!我也需要其他项目的这些,所以我很高兴!
rholmes 2011年

1
似乎Python 2.6不再适用。
mujimu 2014年

1
@mujimu,我认为他们可能将2.6设置为2.4的默认值。因此,类似的命令yum install python26可能仅yum install python取决于操作系统的风格/版本。
James Oravec

31

尝试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


感谢您的最后一点-我刚刚安装了python26,想知道如何使“默认”(2.4)指向2.6。创建一个符号链接并调整路径即可。
杰伊·西德里

显然,这将适用于...对于一个用户...直到有人用3.0或其他版本替换python2.6 ...但这似乎是完成此操作的推荐方法。我很难相信CentOS没有附带一个工具来选择要同时使用的各种安装包的版本(我经常会遇到2个Java,PostgreSQL和现在的python版本),例如configure_python -s 2.6之类的东西,并且一切都“神奇”落在窗帘后面的位置,而用户不必考虑未来几年的极端情况。
Tomislav Nakic-Alfirevic

我认为原因是,作为主要用于服务器的企业OS,人们在Cent OS上的开发工作不多。正确配置所有内容后,除非偶尔进行安全更新,否则它们不会接触服务器。
乔伊斯·巴布

1
@ TomislavNakic-Alfirevic我还没有尝试过,但是github.com/yyuu/pyenv看起来很有希望。它从源代码构建所有内容,并将每个版本安装在其自己的目录中。看起来,开发人员更希望将其安装在自己的主目录中,但可以将这些版本以sudo的身份运行并以共享目录为目标。
Mark Evans

@MarkEvans Python确实不是我的强项,所以我很容易错了,但是pyenv看起来像一个解决其他问题的解决方案。如果将“ python”替换为“ JDK”,那么我绝对不会为能够部署Java应用程序而感到高兴:我希望其他人再次编译,测试,重新测试和测试该版本的JDK版本我正在使用的CentOS。我倾向于将相同的逻辑应用于Python。就是说,我敢肯定pyenv很有用,例如dev。(而不是部署)计算机。
Tomislav Nakic-Alfirevic

28

当遇到类似情况时,我通常会避开软件包管理器,特别是如果破坏某些东西(例如生产服务器)会很尴尬。相反,我将转到Activestate并下载其二进制软件包:

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

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

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

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

构建好之后,请在任何最新的Linux发行版上使用tarball。将其移动到目录存在一点麻烦,/data1/packages/python272这是您patchelf在移动目录之前必须运行include来设置解释器路径。这会影响/data1/packages/python272/bin

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


4
我不知道过去的许可证是什么,但是不幸的是,现在除非您购买了Business Edition($$$),否则它不允许您在面向外部的服务器上使用ActivePython。activestate.com/compare-editions
Nate

2
为了避免使用包管理器破坏服务器,您依赖第三方提供程序的脚本?呵呵
akostadinov

26

无需做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


1
注意:此功能需要使用AC编译器。看起来好像没有CentOS 5上市(至少,我的PATH上没有)
Cody S

的./configure &&化妆&&化妆ALT安装(toomuchdata.com/2014/02/16/how-to-install-python-on-centos
luismartingil


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

3
这在CentOS 5.4下不起作用:没有可用的软件包python26。
约瑟夫·图里安


3

当您安装python版本(在本例中为python2.6)时,请发出以下命令来创建您的virtualenv

virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/

2

晚了,但是OP应该已经使用BuildoutVirtualenv了,并且完全回避了问题。

我目前正在Centos服务器上工作,辛苦工作是一个恰当的名词,我可以向所有人保证,在使用耐火矛的等效软件的同时,我能够眨眼泪的唯一方法就是扩建。


2
仅安装python2.4时,可以使用virtualenv安装python2.6吗?
Collin Anderson

当然。我相信可以在virtualenv中使用--no-site-packages选项,或者在buildout中构建python。
chiggsy

不,virtualenv仅处理python模块/软件包及其版本。它仍然需要指向一个有效的python解释器二进制文件(已经在系统上)。
杰森·安特曼



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

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


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

下载并安装Distribute for 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

0

我取消安装了python(2.6.6)的原始版本并安装了2.7(with option make && make altinstall),但是当我尝试使用yum安装某些东西时却不起作用。

所以我解决了这个问题,如下所示:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6下载RPM软件包python-2.6.6-36.el6.i686.rpm 。 6-36.el6.i686.rpm.html
  3. 以root身份执行 rpm -Uvh python-2.6.6-36.el6.i686.rpm

完成了


-1

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

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

然后做 :

$ sudo yum install python36u 

您也可以安装任何版本而不是3.6(如果需要),只需将版本号替换为36。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.