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安装python2.7的更多相关文章
- linux 安装 python2.7
若新安装虚拟机,或者新装linux系统.需安装gcc等yum -y install gcc gcc-c++ autoconf automake cmake ntp rsync ssh vim yum ...
- 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- ...
- Linux安装python2.7、pip和setuptools
一.说明 CentOS6.5自带python环境为2.6,公司的python环境为2.7. 为了避免出现以后代码出现版本差异,所以把自带的2 .6版本升级到了2.7,过程十分曲折.... 中途遇到的问 ...
- 【Linux】 CentOS6.5安装Python2.7以及pip等工具
原文地址 CentOS6.5下是原来就有python的,我的镜像里面自带的python版本是2.6.6.如果想要自己更新一个更加新的python版本可以这么做: 安装python2.7安装包. 从官网 ...
- Linux同时安装python2和Python3
我们以Ubuntu 为例,默认地,Linux安装好后会默认安装python2版本: 安装Python3: For Debian: [user@host]$ sudo apt-get install ...
- Linux下安装python-2.7 先zlib
2018-04-25 发布 Linux下安装python-2.7 python 1.1k 次阅读 · 读完需要 25 分钟 1 安装依赖的库 yum -y install python-deve ...
- Linux下安装Python2.7
Linux下安装Python2.7 CentOS6.8 中默认安装了Python2.6,但是很多应用需要使用Python2.7,于是要学会如何在Linux下安装Python2.7,这里记录一下,免得以 ...
- linux下Python2.7编译安装PyQt5
---作者吴疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- -----------点击此处链接至博客园原文----------- 功能说明:在ubuntu系 ...
- windows和linux下 Python2,Python3 的环境及安装
目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和 ...
随机推荐
- asp.net core系列 33 EF查询数据 (2)
一. 原生SQL查询 接着上篇讲.通过 Entity Framework Core 可以在使用关系数据库时下降到原始 SQL 查询. 在无法使用 LINQ 表达要执行的查询时,或因使用 LINQ 查询 ...
- 分享一个很通用c语言的Makefile
编写Makefile是一个苦乐交织的事情,快乐是因为从一堆需要手工逐个处理的编译过程,进步到一条命令完成,看着代码顺畅的在屏幕上滚动,编译为最终的产品,那个过程无比愉悦:而痛苦则是,写代码已经很累了, ...
- leetcode — minimum-depth-of-binary-tree
/** * Source : https://oj.leetcode.com/problems/minimum-depth-of-binary-tree/ * * * Given a binary t ...
- bash shell第一课
自学shell,又被老师说教,上英语课不好好学习英语四级怎么过,哈哈,那也没有数据对我的吸引力大啊,为了爱与梦想!!! 回忆一下文件格式: 文件名的扩展名为 .sh 文件内容开头必为 #!bin/ ...
- angr进阶(4)从任意位置开始
从程序的任意位置开始可以大大的减少测试的时间,使用的方法是控制程序运行到某时刻的寄存器的值来进行的.asisctffinals2015_fake p = angr.Project("fake ...
- 1.Docker简介【Docker每天5分钟】
Docker给PaaS世界带来的“降维打击”,其实是提供了一种非常便利的打包机制.该机制打包了应用运行所需要的整个操作系统,从而保证了本地环境和云端环境的高度一致,避免了用户通过“试错”来匹配不同运行 ...
- Java提高班(二)深入理解线程池ThreadPool
本文你将获得以下信息: 线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现 为了方便读者理解,本文会由浅入深,先从线程池的使用开始再延伸到源码解读和源码分析等高级内容,读者可根据 ...
- 解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents .....
1.前言 今天在用SpringBoot2.0+MyBatis+MySQL搭建项目开发环境的时候启动项目发现报了一个很奇怪的错,报错内容如下: java.sql.SQLException: The se ...
- dogse入门指南
dogse入门指南 Dogse作为游戏服务端引擎,目前只包含游戏服务端的核心部分,但这也是最核心的部分.它全部使用.net c#开发,充分兼顾了程序性能与代码编写的准确性与易用性,再加上以vs作为开发 ...
- Java设计模式——适配器模式(Adapter)
目的:把源类型适配为目标类型,以适应客户端(Client)的需求:此处我们把目标接口的调用方视为客户端 使用场景:需要对类型进行由源类型到目标类型转换的场景中 前置条件:已有客户端 //Client ...