linux更新python版本命令_Redhat Linux下的python版本号升级

运行#Python与#python -V,看到版本是2.4.3,非常老了,并且之前写的都是跑在python3.X上面的,3.X和2.X有非常多不同,

有兴趣的朋友能够參考下这篇文章:

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

from pickle import Pickler

File "~/PythonInstall/lib/python2.7/pickle.py", line 1266, in

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 appearsin.)

/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 usein

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 isreported

only once

/opt/PJT_python/python-2.7.3/Python-2.7.3/Modules/_sqlite/connection.c:552: error: for each function it appearsin.)

/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 usein

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配置文件的改动方法,改动其配置文件就可以。

至此,更新完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值