CentOS-6.5原装的python版本为2.6.6,为方便学习打算再升级python2为python-2.7.11,同时安装python3.5.1。
工具与原料
Python-2.7.11.tar.xz
Python-3.5.1.tar.xz
解压命令: tar -xf Python-2.7.11.tar.xz
升级Python2
# cd Python-2.7.11
为了不覆盖以前的版本,在安装时指定版本特定的目录
# ./configure --prefix=/usr/local/python2.7.11
执行编译命令
# make
执行完该命令后发现python提示如下信息
意思很明确,我们编译的时候,系统没有办法找到对应的模块信息,为了解决这些报错,我们就需要提前安装依赖包,这些依赖包对应列表如下(不一定完全):
模块 | 依赖 | 说明 |
---|---|---|
_bsddb | bsddb | Interface to Berkeley DB library。Berkeley数据库的接口 |
_curses | ncurses | Terminal handling for character-cell displays。 |
_curses_panel | ncurses | A panel stack extension for curses。 |
_sqlite3 | sqlite | DB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安装sqlite-devel |
_ssl | openssl-devel.i686 | TLS/SSL wrapper for socket objects。 |
_tkinter | N/A | a thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinter |
bsddb185 | old bsddb module | 老的bsddb模块,可忽略。 |
bz2 | bzip2-devel.i686 | Compression compatible with bzip2。bzip2-devel |
dbm | bsddb | Simple “database” interface。 |
dl | N/A | Call C functions in shared objects.Python2.6开始,已经弃用。 |
gdbm | gdbm-devel.i686 | GNU’s reinterpretation of dbm |
imageop | N/A | Manipulate raw image data。已经弃用。 |
readline | readline-devel | GNU readline interface |
sunaudiodev | N/A | Access to Sun audio hardware。这个是针对Sun平台的,CentOS下可以忽略 |
zlib | Zlib | Compression compatible with gzip |
在CentOS下,可以用yum安装这些依赖包:
# yum install readline-devel sqlite-devel bzip2-devel openssl-devel gdbm-devel libdbi-devel ncurses-libs zlib-devel
完成这些安装之后,可以再次编译,提示信息变成了下面的样子:
将编译好的程序打包,新版本的python会安装到我们之前指定的目录
# make install
为了能直接在命令行使用python2.7.11,我们在/usr/bin/目录下建立可执行文件的软连接。该目录下python命令对应的操作系统默认的版本2.6.6,暂时不动它,我们用python2指向新版本python
# ln -s /usr/local/python2.7.11/bin/python2.7 /usr/bin/python2.7.11
# ln -s /usr/bin/python2.7.11 /usr/bin/python2
安装Python3
与安装python2.7类似,此处列出主要过程
# cd Python-3.5.1
# ./configure --prefix=/usr/local/python3.5.1
# make
# make install
# ln -s /usr/local/python3.5.1/bin/python3.5 /usr/bin/python3.5.1
# ln -s /usr/bin/python3.5.1 /usr/bin/python3
P.S. 安装完毕后,我的操作系统存在3个版本的python
# ll /usr/bin/python*
lrwxrwxrwx. 1 root root 11 Apr 30 15:45 python -> python2.6.6
lrwxrwxrwx. 1 root root 21 Apr 30 15:44 python2 -> /usr/bin/python2.7.11
-rwxr-xr-x. 1 root root 9032 Nov 22 2013 python2.6.6
lrwxrwxrwx. 1 root root 37 Apr 30 15:22 python2.7.11 -> /usr/local/python2.7.11/bin/python2.7
lrwxrwxrwx. 1 root root 20 Apr 30 15:39 python3 -> /usr/bin/python3.5.1
lrwxrwxrwx. 1 root root 36 Apr 30 15:43 python3.5.1 -> /usr/local/python3.5.1/bin/python3.5
python 命令对应操作系统默认的版本2.6.6
python2 命令对应版本2.7.11
python3 命令对应版本3.5.1
想用哪个版本就用哪个版本 嘻嘻~
网友评论