我讨厌扮演一个讨厌的、愚钝的人,不知道自己在说什么。但不幸的是,就 Linux 而言,这就是我……
我正在使用 zipfile 模块在 python 中执行一些文件操作。当前安装的 python 版本是 2.4.3,但 zipfile 模块使用“with”语句,我认为它是在 2.5 版中出现的(我还需要使用 tarfile 模块;虽然我还没有测试过,但我想我会遇到同样的问题)。
我目前的行动计划是弄清楚如何升级 python 安装。但是,我对 linux 一无所知,对 python 也知之甚少,我甚至不知道从哪里开始。我看了一些类似的帖子,其中提到将它安装在另一个目录中。但我一开始并没有安装它。我甚至不知道如何在 linux 中安装东西……
任何帮助都将不胜感激!另外,如果有比尝试更新 Python 更好的方法,我完全愿意接受建议。请记住:我的 Linux 智力大约相当于四岁儿童的智力。谢谢!
答案1
在 Linux 上升级 Python 最简单的方法是让别人帮你升级;你的发行版上通常有很多人专门为你打包升级那分发。在你撸起袖子开始工作之前,看看他们是否已经完成了工作。
基本上,这意味着了解您的发行版使用哪种类型的包管理器,然后查看下一个版本是否可用。这种技术存在缺点:
- 您的发行版本可能较旧并且不再提供更新。
- 您的发行版可能更看重稳定性而非尖端技术,并且尚未决定下一个版本是否足够稳定(或经过充分测试)。
- 您的发行版可能没有打包所需的模块,因此您必须自行安装它们。
对于我的发行版,rpm
是包管理器,yum 是命令行前端。要使用 yum 检查包是否存在更新,我输入
yum check-updates <package name>
并更新我输入的内容
yum update <package name>
无论您对 Python 模块的结果如何,您都应该了解一些有关包管理器的知识以及如何使用它,以避免在关键时刻需要匆忙学习它。
如果您找不到适合您的版本,有时在 Google 上搜索会找到为您的发行版打包了正确版本的人,即使您的发行版尚未打包。如果是这样,并且您相信其他人没有做恶意的事情,那么您通常可以安装他们的软件包。
如果不存在预先打包的版本,那么您就会陷入困境,需要阅读特定项目的“如何安装”页面,而对于 Python,它非常符合 Maxime 的“困难方式”,这可能听起来很吓人,但在您做了几次之后,您就会意识到它其实并没有那么难。
请记住,在包管理器知识范围之外安装的软件可能永远不会被包管理器知道,因此将来使用该软件的包管理器可能需要特殊处理,以防止包管理器执行某些操作,如果你的 Python 版本不是已安装。
答案2
简单的方法:
直接使用 zip 命令,而不是使用旧的 zip 模块:
import subprocess
subprocess.call('unzip <path to your file>')
或者,使用 subprocess.Popen。
提交我的答案后,我想给这一部分加上标题:
困难之路:
根据 Python 版本猜测您使用的是 Red Hat 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 应该是这样的:
- 首先,您需要知道管理员密码(Linux 世界中的 root)。
- 输入“su”切换到 root - 注意,这是一个危险的情况。成为 ROOT 是很危险的。
- 类型:
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
不,编译软件本身:
make
然后安装它:
make altinstall
不要错过--prefix = / opt ./configure --prefix = / opt / python2.7
最后,您需要设置 PATH 变量以包含安装 Python 的 python。
export PATH=$PATH:/opt/python2.7/bin/
为了使其永久生效,请编辑您的 .bashrc,并添加上述行!
祝你好运,欢迎来到 Linux :-)
答案3
不确定为什么从源代码构建 Python 会遭到如此大的阻力,因为它真的很简单:
$ 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
如果出现错误,则需要做一些工作,但是构建很有可能不会出现错误。
完成此操作后,你应该可以运行$HOME/bin/python