$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




[应用&技术] centos系统下Python2.4升级到Python2.7步骤

本来python是2.4的,好像不支持requests模块.
  k& J, f9 C, Z6 ?- r9 X* PCentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.! y& U  j$ z4 M; I

4 I1 |! U# |& c9 i3 X+ ^

首先下载源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

7 }7 \+ T/ d% u( H8 y

# 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

# T( j$ q7 ]' Z5 {/ }4 y& T

这时候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
0 B" W" a' l8 \% B//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4


; P- g6 w- I; j% ~

这时候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


2 D& o5 C! s0 M$ Q7 Z参考:
+ _' G# j/ J0 j+ e/ W" }4 M0 x% Xhttp://blog.csdn.net/firefoxbug/article/details/8688735" l  e0 N3 Q) z7 E8 C3 q% D9 U% y1 b
http://www.jb51.net/article/51800.htm

【linux】终端直接执行py文件,不需要python命令3 p* T* l0 `! h+ E0 a1 G. \$ O
先将终端所在路径切换到python脚本文件的目录下
1 f4 z2 q4 W: t" d9 Y+ \4 r然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
/ H# R, G, Z/ g; x' l. o9 @chmod 755 ./*.py
* [( X1 @* l1 u) l7 T% V4 X' H然后执行。
* ~4 H' I) S5 V+ S如果在脚本内容的开头已经给出了类似于如下的注释:
) L  g; c) G7 l9 G( s#!/usr/bin/env python$ w6 d( ^8 A% a4 S7 `* q) N7 ?1 k
那就可以直接在终端里运行:- ]) z* l# O- w1 W
./*.py3 R1 a# P# j- `5 l0 R, i' l
如果没有这个注释
" x( {2 I$ S" ?% N* u- f就在终端中执行:9 j0 f3 K9 g% O* i2 S. _/ n$ Q/ k
python ./*.py
: k1 L6 |! B9 i  d+ C  d$ h如果是有图形界面的脚本( r# A3 k7 S1 T0 j$ K) e4 s1 w
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):" |3 N. ?" h3 t, P. a, o; a3 G) q
/tmp/A.py8 P5 z* [: S0 |5 {9 `0 G9 @. A( O
或先切换目录,再运行:3 y! q- n: y# G5 |
cd /tmp/ T' C; F* ^: Y, T. \
./A.py8 k6 X3 ?/ w7 p5 U
如果该文件需要修改跟用户权限下的一些文件或目录! ^9 r7 s) L: m1 l- g
就将自身提升为跟用户权限:
# v8 i+ l% e3 p; k/ z! dsudo /tmp/A.py7 ]2 i; Z4 j, W" U: Z9 F3 I
或直接将自身提升为跟用户再运行:
; M3 p9 k6 j% J5 q; {0 wsu root
3 Z, K9 e' o4 c& b- b1 ^/tmp/A.py
1 U3 J' u3 A5 ]* B另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中 ' d- U4 j! {) O( T( X8 M
执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found- v; [& n' h! ]7 G6 p
执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied. X. w, q% D4 z5 |1 F8 L
使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:6 X7 A+ E9 J+ b/ Z8 ~+ f
1.
% `) P( u  d3 p0 j  }文件开头没有执行注释:#!/usr/bin/env python
3 E: a- {% R$ e/ Y* G$ w但你之前说有这一行
. W# G- X$ O" a1 `5 h1 M" w2.3 R* o4 y, [; m2 J3 O5 W! N
就是没用chmod5 j- h$ ^  C/ `) `
上面说了,最开始要给脚本设置权限
, [1 Y  t+ K9 W6 F# ~- D如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了' T' W- w, ?' |- g7 b
如果还有别人用,就给个chmod 755 /tmp/A.py好了& ]& [# c- Y, E6 ]# ]
这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系1 q% W: A; [  d, d% _
简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。9 g7 i9 E7 m- T

6 e' |9 M- T. h; w+ ^. i如果以上两个都试过了,还是不行,我就无能为力了
5 @( |" i% E( O7 R. [7 V2 |确认一下是否正确安装了python解释器吧~~) y1 o4 s6 j6 W
然后尝试着直接调用python去执行吧:
! H* `" z$ p5 wpython /tmp/A.py0 B: V" _3 Z0 Z4 B4 F3 R
类似这样的命令。当然必要的时候chmod和sudo也是用的。
3 F( ^; m% F3 ^: S: p
' o4 R2 ^: q/ B4 a
7 L3 w' u/ a- E8 F7 D" h5 V6 Z
参考:
: k/ b! V: i: f. S0 G! ehttp://www.cnblogs.com/lizunicon/p/3509393.html


TOP

返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全