在CentOS或RHEL上升级Python 2.X

我讨厌扮演这个讨厌的人,他不知道他在说什么。 但是,不幸的是,就Linux而言,这就是我…

我正在做一些使用zipfile模块的python文件操作。 当前安装的python版本是2.4.3,但是zipfile模块使用了'with'语句,我认为这是2.5版本(我也需要使用tarfile模块;尽pipe我还没有testing过,我想我会遇到同样的问题)。

我目前的行动计划是弄清楚如何升级python安装。 但是,对于linux一无所知,对python一无所知,我甚至不知道从哪里开始。 我看了一些类似的post,提到安装在另一个目录。 虽然我并没有把它安装在第一位。 我甚至不知道如何在Linux中安装的东西…

任何帮助将不胜感激! 另外,如果有更好的方法比尝试更新python,我完全开放的build议。 只要记住:我的linux智能大致相当于一个四岁的孩子。 谢谢!

在Linux上升级Python最简单的方法是让其他人为你做; 您的发行版经常会有许多人专门为该发行版打包升级。 在你卷起袖子进入之前,看看他们是否已经完成了这项工作。

基本上,这意味着学习你的发行版使用什么types的包pipe理器,然后看看下一个版本是否可用。 这种技术的弱点存在:

  1. 您的发布版本可能已经过时,更新不再可用。
  2. 你的发行版本可能比先进版本更重视稳定性,并且还没有决定下一个版本是否足够稳定(或者经过充分testing)。
  3. 您的发行版可能没有打包所需的模块,因此您必须自行安装它们。

对于我的发行版, rpm是软件包pipe理器,yum是命令行前端。 要检查包含yum的包是否存在更新,请键入

 yum check-updates <package name> 

并更新我input的内容

 yum update <package name> 

无论你的Python模块的结果如何,你都应该了解一下你的软件包pipe理器,以及如何使用它,以避免在关键时刻急于需要学习它。

如果您没有find适合您的版本,即使您的发行版尚未发布,有时在Google上进行search也会产生为您的发行版打包了正确版本的人。 如果是这样,并且如果你相信对方不会做恶意的事情,那么你通常可以安装他们的软件包。

如果没有预先打包的版本,那么你就被卡住了,需要阅读特定项目的“如何安装”页面,对Python来说,它严密地反映了Maxime的“困难的方式”,这听起来可能听起来很吓人,但是在你做之后几次,你意识到这并不是那么难。

请记住,在软件包pipe理器的知识之外安装的软件可能永远不会被软件包pipe理器知道,所以未来软件包pipe理器的使用可能需要专门处理,以防止软件包pipe理器做某事这是有道理的,如果你的Python版本没有安装。

简单的方法:

只需直接使用zip命令,而不是使用旧的zip模块:

 import subprocess subprocess.call('unzip <path to your file>') 

或者使用subprocess.Popen。

提交我的答案后,我想标题这部分:

困难:

从Python版本推测你正在使用红帽5或CentOS 5。

下面是我的Red Hat 5.8在工作中的样子:

 oz@server ~ $ /usr/bin/python Python 2.4.3 (#1, Dec 22 2011, 12:12:01) [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> f = open('/etc/redhat-release') >>> f.readlines() ['Red Hat Enterprise Linux Server release 5.8 (Tikanga)\n'] 

大多数其他的Ubuntu版本和Debian都有更新的Python版本。

无论如何,升级Python应该像这样工作:

  1. 首先你需要知道pipe理员的密码(Linux世界的根)。
  2. 键入“su”更改为root – 注意,这是一个危险的情况。 ROOT是危险的。
  3. types:
 yum groupinstall "development tools" -y yum install readline-devel openssl-devel gmp-devel ncurses-devel gdbm-devel \ glib-devel expat-devel libGL-devel tk tix gcc-c++ \ libX11-devel glibc-devel bzip2 tar tcl-devel tk-devel pkgconfig \ tix-devel bzip2-devel sqlite-devel autoconf db4-devel libffi-devel \ valgrind-devel -y mkdir tmp cd tmp wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz tar xvfz Python-2.7.5.tgz cd Python-2.7.5 

这是重要的,否则你会擦除你的系统PYTHON! 你不想这样做,因为许多系统组件依赖于Python。

 ./configure --prefix=/opt/python2.7 --enable-shared 

Noe,编译软件本身:

 make 

然后安装它:

 make altinstall 

不要错过–prefix = / opt ./configure –prefix = / opt / python2.7

最后,你需要设置PATHvariables来包含安装Python的python。

 export PATH=$PATH:/opt/python2.7/bin/ 

为了使永久性,编辑您的.bashrc,并添加上面的行!

祝你好运,欢迎来到Linux 🙂

不知道为什么从源代码构buildPython有太多的阻力,因为它非常简单:

 $ tar jxf Python-2.7.3.tar.bz2 # unpack the source tarball $ cd Python-2.7.3 # cd into the source directory $ ./configure --prefix=$HOME # configure for your system $ make # build everything $ make install # install (in $HOME/bin, $HOME/share, etc ) 

如果你对安装步骤感到紧张,首先要做make DESTDIR=/tmp/foo install并在/ tmp / foo中安装所有东西。 检查目录树,然后rm -rf /tmp/foo (当然,除非你在启动程序之前在/tmp/foo有重要的文件!)

如果你得到错误,那么将会有一些工作要做,但是这个构build可以毫无错误地运行。

一旦你完成了这个,你应该可以运行$HOME/bin/python