一、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安装python2.7的更多相关文章

  1. linux 安装 python2.7

    若新安装虚拟机,或者新装linux系统.需安装gcc等yum -y install gcc gcc-c++ autoconf automake cmake ntp rsync ssh vim  yum ...

  2. Linux安装Python2.7.9

    1.下载python wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz 2.解压.编译安装 tar -zxvf Python- ...

  3. Linux安装python2.7、pip和setuptools

    一.说明 CentOS6.5自带python环境为2.6,公司的python环境为2.7. 为了避免出现以后代码出现版本差异,所以把自带的2 .6版本升级到了2.7,过程十分曲折.... 中途遇到的问 ...

  4. 【Linux】 CentOS6.5安装Python2.7以及pip等工具

    原文地址 CentOS6.5下是原来就有python的,我的镜像里面自带的python版本是2.6.6.如果想要自己更新一个更加新的python版本可以这么做: 安装python2.7安装包. 从官网 ...

  5. Linux同时安装python2和Python3

    我们以Ubuntu 为例,默认地,Linux安装好后会默认安装python2版本: 安装Python3: For Debian:   [user@host]$ sudo apt-get install ...

  6. Linux下安装python-2.7 先zlib

    2018-04-25 发布 Linux下安装python-2.7  python 1.1k 次阅读  ·  读完需要 25 分钟 1 安装依赖的库 yum -y install python-deve ...

  7. Linux下安装Python2.7

    Linux下安装Python2.7 CentOS6.8 中默认安装了Python2.6,但是很多应用需要使用Python2.7,于是要学会如何在Linux下安装Python2.7,这里记录一下,免得以 ...

  8. linux下Python2.7编译安装PyQt5

    ---作者吴疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- -----------点击此处链接至博客园原文----------- 功能说明:在ubuntu系 ...

  9. windows和linux下 Python2,Python3 的环境及安装

    目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和 ...

随机推荐

  1. asp.net core系列 33 EF查询数据 (2)

    一. 原生SQL查询 接着上篇讲.通过 Entity Framework Core 可以在使用关系数据库时下降到原始 SQL 查询. 在无法使用 LINQ 表达要执行的查询时,或因使用 LINQ 查询 ...

  2. 分享一个很通用c语言的Makefile

    编写Makefile是一个苦乐交织的事情,快乐是因为从一堆需要手工逐个处理的编译过程,进步到一条命令完成,看着代码顺畅的在屏幕上滚动,编译为最终的产品,那个过程无比愉悦:而痛苦则是,写代码已经很累了, ...

  3. leetcode — minimum-depth-of-binary-tree

    /** * Source : https://oj.leetcode.com/problems/minimum-depth-of-binary-tree/ * * * Given a binary t ...

  4. bash shell第一课

    自学shell,又被老师说教,上英语课不好好学习英语四级怎么过,哈哈,那也没有数据对我的吸引力大啊,为了爱与梦想!!! 回忆一下文件格式:   文件名的扩展名为 .sh 文件内容开头必为 #!bin/ ...

  5. angr进阶(4)从任意位置开始

    从程序的任意位置开始可以大大的减少测试的时间,使用的方法是控制程序运行到某时刻的寄存器的值来进行的.asisctffinals2015_fake p = angr.Project("fake ...

  6. 1.Docker简介【Docker每天5分钟】

    Docker给PaaS世界带来的“降维打击”,其实是提供了一种非常便利的打包机制.该机制打包了应用运行所需要的整个操作系统,从而保证了本地环境和云端环境的高度一致,避免了用户通过“试错”来匹配不同运行 ...

  7. Java提高班(二)深入理解线程池ThreadPool

    本文你将获得以下信息: 线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现 为了方便读者理解,本文会由浅入深,先从线程池的使用开始再延伸到源码解读和源码分析等高级内容,读者可根据 ...

  8. 解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents .....

    1.前言 今天在用SpringBoot2.0+MyBatis+MySQL搭建项目开发环境的时候启动项目发现报了一个很奇怪的错,报错内容如下: java.sql.SQLException: The se ...

  9. dogse入门指南

    dogse入门指南 Dogse作为游戏服务端引擎,目前只包含游戏服务端的核心部分,但这也是最核心的部分.它全部使用.net c#开发,充分兼顾了程序性能与代码编写的准确性与易用性,再加上以vs作为开发 ...

  10. Java设计模式——适配器模式(Adapter)

    目的:把源类型适配为目标类型,以适应客户端(Client)的需求:此处我们把目标接口的调用方视为客户端 使用场景:需要对类型进行由源类型到目标类型转换的场景中 前置条件:已有客户端 //Client ...