01.01.04 使用不同版本的Python
Python的版本现在分成2.X和3.X两个分支并行开发。因此,使用Python开发项目时,同样会遇到使用不同的Python版本进行开发的情况。下面我们就如何在同一个操作系统下,使用不同版本的Python分别开发各自的应用程序这一话题进行阐述。
Ubuntu 11.10上默认安装的Python版本是2.7.2。下面我们来安装以下三个不同版本的Python。
Python 3.2
Python 2.6
Python 2.5
Python 3.X并没有在开发项目中大量使用,我们为了接触一下***的Python,可以先安装一下。Python在Ubuntu 11.10上的安装方法有很多,具有代表性的安装方法有下面几种:
通过Ubuntu官方的apt工具包安装
通过PPA(Personal Package Archive)的apt工具包安装
通过编译Python源代码安装
通过Ubuntu官方包安装一般来说最可靠也最简单。作者在执笔时,可以通过它来安装Python 3.2和Python 2.6。
通过Ubuntu官方的apt工具包安装
$ sudo aptitude install python3.2
$ sudo aptitude install python2.6
安装完成之后,可以用下面的命令进行确认 。
Python版本的确认
$ python3.2 -V
Python 3.2.2
$ python2.6 -V
Python 2.6.7
安装的各种各样Python版本均在/usr/bin目录下以带有版本信息的文件名存放。另外,在安装Python 2.5时,输入命令sudo aptitude install python2.5时,会提示无法安装。这是因为在Ubuntu 11.10中,Python 2.5没有被官方apt包放入推荐安装的软件列表中。
遇到Python 2.5这样的老版本软件难以在官方apt资源中找到的情况,我们可以考虑利用PPA(Personal Package Archives)这一由自愿者编译的apt资源站点。由于PPA是自愿者自发支持的资源站点,在使用中往往会有些不兼容的问题存在,所以在使用PPA的资源包时,需要使用者自己承担责任,这一点需要格外慎重。
接下来我们介绍一下从PPA安装Python 2.5的方法。
$ sudo aptitude install python-software-properties
$ sudo add-apt-repository ppa:fkrull/deadsnakes
$ sudo aptitude update
$ sudo aptitude install python2.5
类似使用apt工具包安装Python的工具虽然简单,但有时不一定能够安装到***版本。因此,在Python出现重要更新时,我们***学会从源代码直接编译安装。
既然apt官方网站没有推荐Python 2.5,我们就从源代码直接编译安装Python 2.5。首先从下面的URL地址下载Python 2.5的***版本。
从源代码编译安装Python没有特别难的地方,按照下面的顺序,使用make命令即可(下面的步骤还包括了使用wget命令下载源代码的过程)。
从源代码编译安装Python
$ wget http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz
$ tar -xvzf Python-2.5.6.tgz
$ cd Python-2.5.6
$LDFLAGS="-L/usr/lib/x86_64-linux-gnu"./configure
$ make
$ sudo make install
安装完成后,可以确认一下Python 2.5是否安装在了/usr/local/bin目录下。与此同时,我们也会发现默认的Python版本变成了Python 2.5.6。这是因为操作系统在搜索命令时,是按照PATH环境变量的顺序依次进行搜索的,/usr/local/bin下的Python会比/usr/bin下的Python优先搜索到,并作为默认的Python版本。
Python的有些模块和apt安装的某些工具包有着依赖关系,如果没有事先安装这些工具包就使用这些模块的话,会发生import错误。
这时我们就需要将那些工具包重新使用apt安装,尤其是下载源代码编译安装之后,才能继续使用Python某些模块。下面的表格介绍了一些只有安装了apt对应工具包之后才能使用的Python模块。Python的模块
apt的工具包
zlib
zlib1g-dev
sqlite3
libsqlite3-dev
readline
libreadline6-dev
gdbm
libgdbm-dev
bz2
libbz2-dev
Tkinter
tk-dev
Python 2.5安装确认
#环境变量PATH搜索顺序从左往右开始。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
# /usr/local/bin/python的执行结果。
$ python -V
Python 2.5.6
# 使用which命令查看实际的路径。
$ which python
/usr/local/bin/python
# 指定路径的话,会发现执行的是Python 2.7.2+。
$ /usr/bin/python -V
Python 2.7.2+
使用不同版本Python的方法
最简单的方法是使用virtualenv,建立虚拟运行环境,并在命令行中指出Python的版本信息。
virtualenv执行时指定Python版本
$ mkvirtualenv--python=/usr/bin/python2.7 newenv2
将想要使用的Python的路径信息放入上面命令,就可以指定在虚拟环境中使用的Python版本。
确认虚拟环境的Python版本
(newenv2)$ python -V
Python 2.7.2+
如果无法使用virtualenv,可以使用诸如python2.7这类带有版本信息的Python命令,也可以借助软连接将Python命令重定向到某个特定版本。
另外需要注意的是,如果使用源代码编译安装,/usr/local/bin下面的python和python-config会变成默认的Python。
【责任编辑:book TEL:(010)68476606】
点赞 0