zoukankan      html  css  js  c++  java
  • Linux安装python2.7

    一、Python安装

    以Python-2.7.7为例,安装包:Python-2.7.7.tgz如无特殊说明,以下安装步骤都采用root用户执行

    1. 解压Python-2.7.7.tgz

    tar -xzvf Python-2.7.7.tgz

    2. 进入解压产生的Python目录

    cd Python-2.7.7

    3. 安装

    此时可以先安装zlib模块,见2.安装message模块

    ./configure --prefix=/usr/local/Python2.7 --enable-shared -enable-unicode=ucs4

    configure是源码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足安装软件的依赖关系。

    关于configure的介绍:http://blog.csdn.net/luckywang1103/article/details/18674231

    关于-enable-shared的介绍:http://blog.csdn.net/z1988316/article/details/7894734

    -enable-unicode=ucs4:为了解决RHL6.6编码采用ucs4编码的问题,RHL5.5不需要

    2) 执行时出现没有编译器错误,安装g++:

    yum install gcc-c++

    然后重新执行configure命令

    make

    编译源代码并生成执行文件

    make install

    把生成的文件拷贝到Linux系统必要的目录下,如/usr/local/bin,这样所有用户都可以运行程序。

    4. python解释器指向python2.7

    执行python,发现仍然使用Linux自带的python2.6.6

    执行which python,找到python解释器地址,为:/usr/bin/python

    将解释器指向新安装的python2.7.7,执行:

    cd /usr/bin

    rm python

    ln -s /usr/local/Python2.7/bin/python python

    再执行python,发现缺少python的lib库:

    python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

    解决方法1:

    执行:vi /edt/ld.so.conf

    添加libpython2.7.so.1.0的路径: /usr/local/Python2.7/lib

    执行:/sbin/ldconfig -v

    执行:ldd libpython2.7.so.1.0,可以找到:

    /usr/local/Python2.7/lib:libpython2.7.so.1.0 -> libpython2.7.so.1.0

    解决方法2:(我的环境采用解决方法1还是不正确)

    cd /etc/ld.so.conf.d/
    echo "/usr/local/Python2.7/lib" > python2.7.conf
    ldconfig

    执行:python,显示:

    Python 2.7.7 (default, Dec 15 2014, 13:30:16)

    [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2

    Type "help", "copyright", "credits" or "license" for more information.

    >>> 

    表示解释器已经正确指向python2.7

    5. 后续工作

    由于yum使用了原来python2.6的一些脚本,需要将yum重新导向原来的python2.6解释器才可以使用

    执行:which yum,找到yum位置:/usr/bin/yum

    编辑:vi /usr/bin/yum,修改路径为: #!/usr/bin/python2.6

    python2.7安装完成。

    下面介绍一些python模块的安装:message,cx_Oracle, cython

    二、安装message模块

    安装包:setuptools-7.0,message-0.2.1.tar.gz

    1. 安装setuptools

    setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,可以让程序员更方便的创建和发布 Python 包。

    当需要安装第三方python包时,可能会用到easy_install命令。easy_install是由PEAK(Python Enterprise Application Kit)开发的setuptools包里带的一个命令,所以使用easy_install实际上是在调用setuptools来完成安装模块的工作。所以如果要使用easy_install的命令就需要安装setuptools。

    解压:tar -xzvf setuptools-7.0.tar.gz

    进入目录:cd setuptools-7.0

    编译:python setup.py build

    安装:python setup.py install

    执行安装时报错:

    RuntimeError: Compression requires the (missing) zlib module

    缺少zlib模块,zlib模块用来压缩和解压缩数据,以便保存和传输

    安装:yum install zlib-devel

    这里报错则需要重新进行python的make和makefile,所以建议在安装python之前就安装zlib

    重新安装setuptools。

    2. 安装message模块

    解压:tar -xzvf message-0.2.2.tar.gz

    进入目录:cd message-0.2.1

    编译:python setup.py build

    安装:python setup.py install

    message模块安装完成。

    3. 安装cx_Oracle

    安装包:cx_Oracle-5.1.2-11g-py27-1.x86_64.rpm

    安装cx_Oracle时我们使用rpm包,这样在RHL6.6下更方便安装,不用考虑太多兼容性问题

    执行:rpm -ivh cx_Oracle-5.1.2-11g-py27-1.x86_64.rpm

    执行:python,输入:import cx_Oracle

    报错:

    >>> import cx_Oracle

    Traceback (most recent call last):File "<stdin>", line 1, in <module>

    ImportError: No module named cx_Oracle

    发现是python2.7下没有cx_Oracle.so动态链接库,cx_Oracle.so被放在了:/usr/lib/python2.7/site-packages

    采用软链接方式:

    ln -s /usr/lib/python2.7/site-packages/cx_Oracle.so /usr/local/Python2.7/lib/python2.7/site-packages/cx_Oracle.so

    再次执行:python,输入:import cx_Oracle

    会出现找不到oracle_client导致的问题,此时可以在环境变量中配置oracle_client,或在已经配好的用户下执行,

    修改环境变量:vi .bash_profile
    配置信息:
    export ORCL_HOME=/usr/lib/oracle/11.2/client*****
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORCL_HOME/lib
    export TNS_ADMIN=$ORCL_HOME/network/admin
    export PATH=$PATH:$ORCL_HOME/bin
    ORCL_HOME的具体路径以本地安装路径配置

    source .bash_profile

    成功:

    Python 2.7.7 (default, Dec 15 2014, 13:30:16)

    [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2

    Type "help", "copyright", "credits" or "license" for more information.

    >>> import cx_Oracle

    >>> 

    cx_Oracle安装完成。

    4. 安装cython

    cython介绍见:http://docs.cython.org/en/latest/

    安装包:cython-master.zip

    解压:unzip -o cython-master.zip

    进入目录:cd cython-master

    安装:python setup.py install

    可能出现错误:/usr/bin/ld: cannot find -lpython2.7, 这个错误的原因是库文件并没有导入的ld检索目录中,在/usr/lib, /usr/local/lib,或者其他自定义的lib下没有libpython2.7.so文件,实际在 /etc/ld.so.conf 我自定义的lib路径:/usr/local/Python2.7/lib下是有该文件的,原因未知

    解决办法是重新建立软链接:

    ln -s /usr/local/Python2.7/lib/libpython2.7.so.1.0 /usr/local/lib/libpython2.7.so

    重新安装cython:python setup.py install

    和之前同样的道理找不到cython解释器,在/usr/local/bin下建立软链接:

    ln -s /usr/local/Python2.7/bin/cython /usr/local/bin/cython

    执行:cython,显示:

    Cython (http://cython.org) is a compiler for code written in the
    Cython language.  Cython is based on Pyrex by Greg Ewing.

    Usage: cython [options] sourcefile.{pyx,py} ...

    Options:
      -V, --version                  Display version number of cython compiler
      -l, --create-listing           Write error messages to a listing file
      -I, --include-dir <directory>  Search for include files in named directory
                                     (multiple include directories are al

    (以下省略)

    表示可以正常使用。

  • 相关阅读:
    Linux写时拷贝技术(copy-on-write)
    crontab使用进程锁解决冲突
    Better Linux Disk Caching & Performance with vm.dirty_ratio & vm.dirty_background_ratio
    精确度量Linux下进程占用多少内存的方法
    在Linux系统的服务器上使用Memtester进行内存压力测试
    How to speed up insertion performance in PostgreSQL
    Mongo的备份和恢复(mongodump 和mongorestore )
    MongoDB:删除操作
    MongoDB插入数据的3种方法
    Centos 软连接和硬链接
  • 原文地址:https://www.cnblogs.com/workingdiary/p/6855362.html
Copyright © 2011-2022 走看看