• CentOS6下编译安装Python2.7.6方法


    关于在CentOS6下编译安装Python2.7.6的方法非常的多了,小编以前也介绍过相关的文章了,下面一聚教程小编再来为各位介绍一下吧,希望文章能帮助到各位。
     

    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.

    无论报错信息如何,意思很明确,我们编译的时候,系统没有办法找到对应的模块信息,为了解决这些报错,我们就需要提前安装依赖包,这些依赖包对应列表如下(不一定完全):

    模块 依赖 说明
    _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


     在编译完成之后,就可以接着上面的第六步安装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中的文章,文中包含自动安装的脚本文件。

  • 相关阅读:
    一类分治问题
    [POI2005]DWU-Double-row
    [SCOI2007]降雨量
    [POI2007]ODW-Weights(贪心)
    bzoj3427小P的牧场(斜率优化dp)
    UVA10559 Blocks(区间dp)
    LOJ6089 小Y的背包计数问题(根号优化背包)
    [APIO2008]免费道路(生成树)
    bzoj4383(拓扑排序)
    [HEOI2014]平衡(整数划分数)
  • 原文地址:https://www.cnblogs.com/xiaoping-2014/p/4320900.html
Copyright © 2020-2023  润新知