CentOS下编译安装Python2.7.6
来源:互联网 发布:snmp服务器软件 编辑:程序博客网 时间:2024/05/21 11:15
CentOS下面Python在升级到2.7.6的时候,没有找到安装包直接安装,只能通过源代码编译的方式来安装Python 2.7.6版本。这篇是编译和安装Python2.7.6的过程记录。
CentOS系统中安装了development tools。要编译安装Python,执行下面代码:
$
pushd
/usr/local/src
$
sudo
mkdir
python
$
sudo
chown
$USER python
$
cd
python
$ wget https:
//www
.python.org
/ftp/python/2
.7.6
/Python-2
.7.6.tgz
$
tar
zxvf Python-2.7.6.tgz
$
cd
Python-2.7.6
$ .
/configure
--prefix=
/usr/local/python-2
.7.6 &&
make
$
sudo
make
install
代码过程:
1. 在/usr/local/src
创建python文件夹,并将Python文件夹所有者设置为当前用户(非root)
2. 进入创建的python目录下,从官方网站上下载python2.7.6源代码包。
3. (非必须)如果要校验包的一致性,可以在官方网站上下载sig文件,并通过PGP校验文件,也可以通过官网提供的MD5校验下载的压缩包。更多关于校验的信息请参考Linux下校验文件的完整性(MD5,SHA1,PGP)。本代码忽略了此过程。
4. 解压压缩包到当前目录,并进入Python-2.7.6
目录
5. 配置python并编译。这步只是用了--prefix
参数指示安装路径。
6. 安装Python
上面是在Python编译安装顺利的情况下的大体流程,但是我在编译的时候,Python出现了下面的提示信息:
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _sqlite3 _ssl
_tkinter bsddb185 bz2
dbm gdbm readline
sunaudiodev
To
find
the necessary bits,
look
in
setup.py
in
detect_modules()
for
the module's name.
当然,每个机器上因为不同的配置,编译报错信息也会不同,比如网上有人的报错就是下面这样的:
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _curses _curses_panel
_sqlite3 _ssl _tkinter
bsddb185 bz2 dbm
dl gdbm imageop
readline sunaudiodev zlib
To
find
the necessary bits,
look
in
setup.py
in
detect_modules()
for
the module's name.
无论报错信息如何,意思很明确,我们编译的时候,系统没有办法找到对应的模块信息,为了解决这些报错,我们就需要提前安装依赖包,这些依赖包对应列表如下(不一定完全):
模块依赖说明_bsddbbsddbInterface to Berkeley DB library。Berkeley数据库的接口_cursesncursesTerminal handling for character-cell displays。_curses_panelncursesA panel stack extension for curses。_sqlite3sqliteDB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安装sqlite-devel_sslopenssl-devel.i686TLS/SSL wrapper for socket objects。_tkinterN/Aa thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinterbsddb185old bsddb module老的bsddb模块,可忽略。bz2bzip2-devel.i686Compression compatible with bzip2。bzip2-develdbmbsddbSimple “database” interface。dlN/ACall C functions in shared objects.Python2.6开始,已经弃用。gdbmgdbm-devel.i686GNU’s reinterpretation of dbmimageopN/AManipulate raw image data。已经弃用。readlinereadline-develGNU readline interfacesunaudiodevN/AAccess to Sun audio hardware。这个是针对Sun平台的,CentOS下可以忽略zlibZlibCompression compatible with gzip在CentOS下,可以安装这些依赖包:readline-devel,sqlite-devel,bzip2-devel.i686,openssl-devel.i686,gdbm-devel.i686,libdbi-devel.i686,ncurses-libs,zlib-devel.i686。完成这些安装之后,可以再次编译,上表中指定为弃用或者忽略的模块错误可以忽略。
在编译完成之后,就可以接着上面的第六步安装Python到指定目录下。安装完成之后,我们可以到安装目录下查看Python是否正常安装。
$
pushd
/usr/local/python-2
.7.6
/bin
$ python --version
$
sudo
mv
/usr/bin/python
/usr/bin/python
.old
$
sudo
ln
-s python
/usr/bin/python
$
popd
$ python -V
$
sudo
sed
-i
"s/#\!\/usr\/bin\/python/#\!\/usr\/bin\/python.old/"
/usr/bin/yum
1. 我们进入到安装路径下的bin目录, 并查看安装的版本(版本是2.7.6)
2. 将现有的python版本重命名备份
3. 创建新版本Python到/usr/bin
目录下替代原有python
4. 测试系统Python版本(应该是新的2.7.6)
5. 此时如果yum不能正常工作,可以简单的通过sed将里面的Python引用替换成原来的Python路径即可。
至此,完成Python的更新编译安装工作。如果你想完成自动安装,可以将前面的代码保存为Shell脚本文件——需要注意的是,你可能需要添加各个模块的安装脚本,本篇的是通过yum来安装的。也可以通过参考2中的文章,文中包含自动安装的脚本文件。
- CentOS下编译安装Python2.7.6
- centos下安装python2.7
- centos下安装python2.7.3
- centos 编译安装python2.7.3 带zlib
- CentOS 7 编译安装Python2.6.1
- Centos下安装python2.7 安装工具
- CentOS 6.4下配置安装Python2.7.6和Nodejs-0.10
- CentOS下升级或安装python2.7.5
- centos 下安装python2.7.x
- Centos 下安装 python2-urllib3 失败
- Python2.6 Cx_Oracle Linux下编译安装
- centos6.4下编译安装 python2.7
- CentOS安装python2.6
- centos安装python2.7
- centos 安装python2.7
- centos 安装python2.7
- Centos python2.7.8 安装
- centos安装python2.7.11
- php输出中文月份
- fdgfdfdh
- 主动学习,半监督学习,直推学习
- Groovy的闭包
- 两个文件file1 file2, file1按递增顺序, 不小心将空格去掉了, 需还原
- CentOS下编译安装Python2.7.6
- ubuntu每次登陆都用root账号登陆
- transfer error / Failed to push selection: Permission denied 安卓设备文件读写权限不足
- Python yield 使用浅析
- POJ 2505 A multiplication game 组合游戏
- PowerShell(一)基础知识
- android开发--获取网络图片,读取进度条
- PowerShell(四)异常处理
- 利用php实现图片相似度搜索的简单原理