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




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

本来python是2.4的,好像不支持requests模块.9 E1 h' _( A4 W( y, S* r/ [
CentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.
0 d* \+ \6 x& G, J/ j7 c$ J) c5 `/ l: L- [! I( e; V$ @- r

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

5 k( J, o) O/ a6 H) k  E# e5 `

# 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


0 {7 B0 ]# d$ q; @' Z

这时候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
8 V, z+ u; [! r$ W$ B//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4

3 R% H1 z( a. a5 C

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


0 U* V4 p5 M* N( Y' c& W参考:
; b  m0 k9 K/ e' z7 R+ whttp://blog.csdn.net/firefoxbug/article/details/8688735' ~2 p0 P+ T$ O
http://www.jb51.net/article/51800.htm

【linux】终端直接执行py文件,不需要python命令
- {! f/ L& G4 V5 Q+ u+ |- @先将终端所在路径切换到python脚本文件的目录下* |/ s# |, H  x! P* G# R9 O
然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
) r7 I8 K4 z, h, nchmod 755 ./*.py
, r0 T; Q$ n: j! i" W2 ~然后执行。% e0 J+ a' E& T& H0 L; H
如果在脚本内容的开头已经给出了类似于如下的注释:0 l& n5 s  {$ j  p$ }, h6 ^
#!/usr/bin/env python5 p. }  c6 G2 h6 U3 p* W
那就可以直接在终端里运行:5 I7 Z5 k: H7 W
./*.py
' r# K3 o6 @, z1 N2 ^+ a如果没有这个注释1 m$ y0 \9 n2 W2 h
就在终端中执行:
+ Z" ^+ X. b; s, spython ./*.py
3 v! D$ S' {- U  G9 ^如果是有图形界面的脚本
, @. M0 h8 X  L. p. E5 [3 f5 j在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):
9 P& b3 s) p( ~/ V/tmp/A.py% W+ x  h, `% p0 R8 k
或先切换目录,再运行:
! w! U1 x- z# ?4 Ncd /tmp, v6 _' C& N/ j: t8 U, C
./A.py3 J9 [+ B) o7 m
如果该文件需要修改跟用户权限下的一些文件或目录
4 `4 y3 a1 V% N( e" y1 G4 @% }就将自身提升为跟用户权限:
2 N- d2 H+ \- c* X8 ]2 A9 y8 a2 X& Rsudo /tmp/A.py
& _# ~& Z6 n- Z# y, z或直接将自身提升为跟用户再运行:
6 I' ^5 q+ E" n  Y% A, J% C/ X( T1 ?su root
9 K% R1 ]9 F/ f( `% B/tmp/A.py
0 ?0 ^5 N6 W4 L" I另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中
( O- S, _  s$ A+ w* d% G. x. L% U* F执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found* i2 J3 y4 U' L
执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied
1 c& M# x1 z9 U$ F) j7 m, \! n5 _, u5 i6 H使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:
7 K, z* ~9 m0 _" e/ V0 x( }1.1 D$ b+ e6 S6 y! V. G2 f
文件开头没有执行注释:#!/usr/bin/env python! H1 M$ E' _8 @' _
但你之前说有这一行
% X9 q- E; O9 P' ~, k2.$ T5 S2 ]/ F% U7 x6 s1 e' x. L
就是没用chmod7 E. W# V5 z4 T& _" c
上面说了,最开始要给脚本设置权限* K- Y; D+ ^% C
如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
" K9 p6 @' f; ~5 p0 L0 q: T如果还有别人用,就给个chmod 755 /tmp/A.py好了
# H$ O3 g' U, B, `这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系6 n& L7 G. k0 E$ ?7 t7 K$ Z
简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。
; Q  A& j( v7 a7 Z. \( @+ W) V$ b: ?' t0 v2 g5 b% Z
如果以上两个都试过了,还是不行,我就无能为力了
$ U2 D6 L  l! \. c确认一下是否正确安装了python解释器吧~~# p( l% e* A# B
然后尝试着直接调用python去执行吧:) u3 i6 L3 Y2 u# W7 y0 q, ?6 R
python /tmp/A.py
% o0 {. j- C8 I8 k" L类似这样的命令。当然必要的时候chmod和sudo也是用的。' C7 y& @: ?( e2 g8 c+ ^' |8 o- A% {

& W' L1 [/ e% d- w( @- w5 A/ r; r; O3 C8 E. A0 Z
8 F$ y- h% {4 \
参考:; L& y: @0 Q( T9 w/ s# E: x
http://www.cnblogs.com/lizunicon/p/3509393.html

TOP

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