Redhat Linux下的python版本号升级
有兴趣的朋友能够參考下这篇文章:
http://www.jb51.net/article/34011.htm
更新python千万不要把老版本号的删除!新老版本号是能够共存的,非常多主要的命令、
软件包都要依赖预装的老版本号python的,比方yum。
一、升级到2.7.3
1. 升级安装
首先下载源tar包
可利用linux自带下载工具wget下载,例如以下所看到的:
# wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.gz
下载完毕后到下载文件夹下,解压
# tar -zxvf Python-2.7.3.tar.gz
进入解压缩后的目录
cd Python-2.7.3
在编译前先在/usr/local建一个目录python2.7.3(作为python的安装路径,以免覆盖老的版本号)
# mkdir /usr/local/python2.7.3
在解压缩后的文件夹下编译安装
# ./configure --prefix=/usr/local/python2.7.3
# make
# make install
此时没有覆盖老版本号,再将原来/usr/bin/python链接改为别的名字
# mv /usr/bin/python /usr/bin/python_old
再建立新版本号python的链接
# ln -s /usr/local/python2.7.3/bin/python2.7 /usr/bin/python
这个时候输入
# python
就会显示出python的新版本号信息
view sourceprint?
Python 2.7.3 (default, Sep 29 2013, 11:05:02)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
2.执行程序时出现错误:
File "~/PythonInstall/lib/python2.7/multiprocessing/process.py", line 129, in start
from .forking import Popen
File "~/PythonInstall/lib/python2.7/multiprocessing/forking.py", line 58, in <module>
from pickle import Pickler
File "~/PythonInstall/lib/python2.7/pickle.py", line 1266, in <module>
import binascii as _binascii
ImportError: No module named binascii
是由于升级python版本号不正常导致的。
回到源文件文件夹:
# cd .../Python-2.7.3
[Python-2.7.3]# make -s
building dbm using gdbm
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_set_result':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: 'sqlite3_int64' undeclared
(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: (Each undeclared identifier is
reported only once
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: for each function it appears in.)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: expected ')' before
'PyInt_AsLong'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_build_py_params':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: 'sqlite3_int64' undeclared
(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: expected ';' before 'val_int'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:596: error: 'val_int' undeclared (first use in
this function)
/usr/bin/ld: /usr/local/lib/libz.a(adler32.o): relocation R_X86_64_32 against `a local symbol' can not be used when
making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when
making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
Python build finished, but the necessary bits to build these modules were not found:
_tkinter bsddb185 dl
imageop sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
_sqlite3 binascii zlib
升级安装zlib
# wget http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz
# tar -zxvf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure
# make install
# cd ../Python-2.7.3
# make -s
building dbm using gdbm
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_set_result':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: 'sqlite3_int64' undeclared
(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: (Each undeclared identifier is reported
only once
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: for each function it appears in.)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: expected ')' before
'PyInt_AsLong'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c: In function '_pysqlite_build_py_params':
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: 'sqlite3_int64' undeclared
(first use in this function)
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:583: error: expected ';' before 'val_int'
/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:596: error: 'val_int' undeclared (first use in
this function)
Python build finished, but the necessary bits to build these modules were not found:
_tkinter bsddb185 dl
imageop sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
_sqlite3
升级安装sqlite3
# cd ..
# wget http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz
# tar -zxvf sqlite-autoconf-3080500.tar.gz
# cd sqlite-autoconf-3080500
# ./configure
# make
# make install
# cd ..
# cd python-2.7.3
# make -s
building dbm using gdbm
Python build finished, but the necessary bits to build these modules were not found:
_tkinter bsddb185 dl
imageop sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
# make clean
# make all
# make install
到此,程序就能正常执行了;
二、升级到3.3.0
更新python:
第1步:更新gcc,
由于gcc版本号太老会导致新版本号python包编译不成功 代码例如以下:
#yum -y install gcc
系统会自己主动下载并安装或更新,等它自己结束
第2步:下载Python-3.3.0软件包
代码例如以下:
# wget --no-check-certificate http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
注意:依照上述命令下载的软件包会存放在你当前的工作文件夹下,
wget命令是一个从网络上自己主动下载文件的自由工具,详细使用方法,
请參考这篇文章:http://www.jb51.net/os/RedHat/73089.html
说明:命令中的数字就是版本号号,你也能够把3.3.0换成你须要的版本号.
第3步:解压已下载的二进制包并编译安装
代码例如以下:
#tar -jxvf Python-3.3.0.tar.bz2
#cd Python-3.3.0
#./configure
#make all
#make install
#make clean
#make distclean
# /usr/local/bin/python3 –V
编译安装完成以后,能够输入上面一行命令,查看版本号
第4步:建立软连接指向到当前系统默认python命令的bin文件夹,让系统使用新版本号python
#mv /usr/bin/python /usr/bin/python2.4 //当前python的版本号为2.4所以是python2.4
#ln -s /usr/local/bin/python3.3 /usr/bin/python
输入
#python -V,
就可以查看当前默认python版本号
默认的python成功指向3.3.0以后,yum不能正常使用,须要改动yum的配置文件
第5步:改动yum配置文件
#vi /usr/bin/yum
把文件头部的
#!/usr/bin/python 改成 #!/usr/bin/python2.4 //改为之前的老版本
保存退出,yum就可以正常使用。
如若有其它命令、软件不能正常使用,仿照yum配置文件的改动方法,改动其配置文件就可以。
至此,更新完成。
Redhat Linux下的python版本号升级的更多相关文章
- linux下修改python版本号
修改python版本 1.查看已安装版本: /home/user$ whereis python 2.在其 home 目录下创建一个 alias(别名) user@ubuntu:/home/user$ ...
- linux下配置python环境 django创建helloworld项目
linux下配置python环境 1.linux下安装python3 a. 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件) yum groupinstal ...
- Linux下查看Python安装了哪些脚本模块
Linux下查看Python安装了哪些脚本模块 1.什么是rpm ? rpm 即RedHat Package Management,是RedHat的发明之一 .现在包括OpenLinux.fedora ...
- linux下安装python
在Linux下安装Python的操作相当简单,按如下步骤操作即可: 命令: wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgzt ...
- 解决redhat linux下IP地址可以ping通,域名无法ping通问题
解决redhat linux下IP地址可以ping通,域名无法ping通 在/etc/resolv.conf中添点东西 格式如下: nameserver xxx.xxx.xxx.xxx nameser ...
- Linux 下安装python软件包(pip、nose、virtualenv、distribute )
新手刚开始学习Python,目前学习<笨方法学python>ing- 在学习习题46时需要安装几个软件包:pip.nose.virtualenv.distribute !在此记录Linux ...
- linux下安装python linux下一些常用的命令
注意 ubuntukylin-14.04.2-desktop-amd64 自带python2.7.6 这个说的比较详细 http://wenku.baidu.com/link?url=gaeFcQrc ...
- linux下搭建python机器学习环境
前言 在 linux 下搭建 python 机器学习环境还是比较容易的,考虑到包依赖的问题,最好建立一个虚拟环境作为机器学习工作环境,在建立的虚拟环境中,再安装各种需要的包,主要有以下6个(这是看这个 ...
- Python3.x:Linux下退出python命令行
Python3.x:Linux下退出python命令行 退出命令: quit() #或者 exit() #或者 Ctrl-D
随机推荐
- Android菜鸟的成长笔记(15)—— Android中的状态保存探究(下)
原文:Android菜鸟的成长笔记(15)-- Android中的状态保存探究(下) 在上一篇中我们简单了解关于Android中状态保存的过程和原理,这一篇中我们来看一下在系统配置改变的情况下保存数据 ...
- 谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較
谈谈CListCtrl 扩展风格设置方法 --------------------------------------SetExtendedStyle和ModifyStyleEx 比較 对于刚開始学习 ...
- 基于struct2完整的用户登录
第一lib在导入struct2相应jar包 在web.xml组态struct2过滤器 <filter> <filter-name>struts2</filter-name ...
- 汉诺塔问题的java递归实现
import java.util.Scanner; public class Hanoi { int count=0; public void hanoi(int n,char A,char B,ch ...
- Java SE学习之数组——匿名数组和不规则数组
本文是学习网络上的文章时的总结以及自己的一点实践.感谢大家无私的分享. 近期偶然遇到了数组的问题,学习了匿名数组和不规则数组. 匿名数组适用于仅仅使用一次的情况:不规则数组适用是每行数据总数不确定的情 ...
- leetcode第一刷_Maximum Depth of Binary Tree
这道题预计是ac率最高的一道了.你当然能够用层序遍历,我佩服你的耐心和勇气.由于看到别人的三行代码,会不会流眼泪呢.. class Solution { public: int maxDepth(Tr ...
- 【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?
内容简介 1.课程大纲 2.第一部分第一课:什么是Linux? 3.第一部分第二课预告:下载Linux,免费的噢! 开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求逼格的程序员用的.咱 ...
- PKU A Simple Problem with Integers (段树更新间隔总和)
意甲冠军:一个典型的段树C,Q问题,有n的数量a[i] (1~n),C, a, b,c在[a,b]加c Q a b 求[a,b]的和. #include<cstdio> #include& ...
- Ant—Ant标签解释
采用ant命令必须写ant命令脚本,脚本由非常多Ant标签组成.现在总结一下我也遇到过Ant标签: 版权声明:本文博主原创文章,博客,未经同意不得转载.
- 大约cocos2d-X 3.x使用引擎版本自带的物理引擎Physics
今天打算用BOX2D物理引擎, 我想我以前听说过一些时间cocos2d-X在3.0版本封装自己的物理引擎Physics, 听名字很霸气量, 这的确是一个比BOX2D非常多( 毕竟是基于BOX2D封装的 ...