Board logo

标题: [应用&技术] centos系统下Python2.4升级到Python2.7步骤 [打印本页]

作者: jfx    时间: 2014-10-20 13:28     标题: centos系统下Python2.4升级到Python2.7步骤

本来python是2.4的,好像不支持requests模块.) G: v9 a6 M4 R$ o  ^+ I  [' f2 [
CentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.
4 Y: }/ {/ x3 P( \! M4 E: `$ l# m6 A6 y& d3 [* A$ r1 w

首先下载源tar包

可利用linux自带下载工具wget下载,如下所示:

下载完成后到下载目录下,解压

进入解压缩后的文件夹

在编译前先在/usr/local建一个文件夹python27(作为python的安装路径,以免覆盖老的版本)

在解压缩后的目录下编译安装

此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字

再建立新版本python的链接

这个时候输入

python

就会显示出python的新版本信息

步骤写起来是比较复杂. 对应的命令如下:

# gcc -v   // 先查看下gcc版本  4.1.2 就不用升级了

# yum install gcc gcc-c++.x86_64 compat-gcc-34-c++.x86_64 openssl-devel.x86_64 zlib*.x86_64

! x4 [5 p( N5 h  W

# wget --no-check-certificate https://www.python.org/ftp/python/2.7/Python-2.7.tar.bz2

# tar -xvjf Python-2.7.tar.bz2

# cd Python*

# ./configure --prefix=/usr/local/python2.7

# make && make install

& p1 X& N, u+ e: s

这时候Python已经升级好了,但是默认的Python版本还是2.4.3

# mv /usr/bin/python /usr/bin/python_backup_old

# ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python

# ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python2.7
( _  [) R$ E) t* C: }//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4

" h$ ^' v" N) [9 L! }- i5 G

这时候yum修复了,下面就是安装easy_install,pip和requests

# wget --no-check-certificate https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

# chmod 775 setuptools-0.6c11-py2.7.egg

# sh setuptools-0.6c11-py2.7.egg

# wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.0.tar.gz

# tar xvfz pip-1.0.tar.gz

# cd pip-1.0

# python setup.py install

# /usr/local/python2.7/bin/easy_install requests

9 a4 T$ {0 d( ^
参考:8 O0 V6 K3 L+ I! j% U
http://blog.csdn.net/firefoxbug/article/details/8688735
  Z4 h  l; x* ]; f. R5 v* mhttp://www.jb51.net/article/51800.htm
作者: jfx    时间: 2014-10-20 14:24

【linux】终端直接执行py文件,不需要python命令
8 X8 s% }9 u6 O/ n: @0 b先将终端所在路径切换到python脚本文件的目录下
0 `; a, U) g- Z) N- R3 i) o% n然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
3 |, e/ a7 z5 b% t; q+ Gchmod 755 ./*.py/ D$ a- q  i/ w  E0 J, ^
然后执行。
. E, k4 w  Y8 R/ o6 D: }如果在脚本内容的开头已经给出了类似于如下的注释:
3 a2 ]- v3 k( J+ p#!/usr/bin/env python6 Y' L6 Q) W# s3 c* N* P7 d+ P! x
那就可以直接在终端里运行:8 |9 ~* N: o4 z
./*.py% M! y5 D0 H/ J* H2 `
如果没有这个注释
4 N9 u. O( p7 R3 ?# ~2 c就在终端中执行:
; L" e! `' N0 L& b2 }3 f( Npython ./*.py2 w7 p( h& u# r& L6 c
如果是有图形界面的脚本$ |- B: O6 [7 _: M& b$ k
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):
1 t' }  F7 s  x" U* I6 Y/tmp/A.py! [2 A" \( l, j7 L9 d
或先切换目录,再运行:8 R# U  {9 M9 c7 a, c4 Q
cd /tmp+ a0 q) O/ @5 D6 i4 h/ V
./A.py6 D! R1 m8 _+ i
如果该文件需要修改跟用户权限下的一些文件或目录
: B9 i" L- {' M% w$ D/ g4 q就将自身提升为跟用户权限:
0 U( B' _, q, K7 D8 ?sudo /tmp/A.py
' R+ f4 l) g' B. f: j3 T或直接将自身提升为跟用户再运行:+ H1 i8 m% @% D2 I, x, @
su root7 Y6 F. v/ V$ F/ |% J
/tmp/A.py' l, O6 F7 t1 T- x$ W8 O  m1 o
另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中
7 c# q& P" p( c3 \" t执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found, n6 V4 ]2 X1 h' x. |
执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied
0 e4 r( E! L: ~) V) U" O( ?使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:) q, l* y, ]/ I' {; D6 n7 C# M
1.
7 D2 M' T7 S& C文件开头没有执行注释:#!/usr/bin/env python& b' u9 n9 i' p% Y. u# i4 v  m) \
但你之前说有这一行
% x+ i. y5 p( S2., t+ z9 L" R, Q: P+ q) W
就是没用chmod
1 B- W- H; v9 O/ l% I+ s; Y5 {4 Q0 R上面说了,最开始要给脚本设置权限
4 f* u; N$ I+ g4 r) e# K7 U如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
) x, h% C' a7 j9 j/ m, ]如果还有别人用,就给个chmod 755 /tmp/A.py好了( V2 K2 J- ]$ E- I! G
这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系4 S7 v+ k' p+ V  S8 a& p' L* j; F
简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。
: w: E( m$ R" f# Q
, m6 y8 s! E) a9 }如果以上两个都试过了,还是不行,我就无能为力了" E1 y3 ^$ `! A8 D# K
确认一下是否正确安装了python解释器吧~~: p( t# ?7 p- W) w
然后尝试着直接调用python去执行吧:
% h+ i/ f- ^3 L% C& Z$ q' y: Ipython /tmp/A.py4 R# ?6 H7 @% t. ~" C; H
类似这样的命令。当然必要的时候chmod和sudo也是用的。" r) b2 \9 m* X$ y2 [: s

: g, \+ B+ ^/ g- p. c! V6 H( B( s$ [# U$ i+ {2 [; X' X. m

; N0 }7 z" m6 q/ K# G参考:
8 J7 P: |/ i* [- m3 [5 Mhttp://www.cnblogs.com/lizunicon/p/3509393.html




欢迎光临 捷飞网络论坛 (http://bbs.fjbjdd.com/) Powered by Discuz! 7.2