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




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

本来python是2.4的,好像不支持requests模块.' G& a- |* Z9 U1 Z  m4 A
CentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.* M2 F' {5 c, t' i5 v' o

/ ?5 F; f' v% E7 w/ 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


0 |& V- p- b  }: |6 u5 o

# 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

5 P% h& }1 L" }6 b; ]1 }

这时候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 G3 Q8 K7 i, ~6 p6 x. ?//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4

: R0 ~9 v; V% u' W- J6 v' x* G$ p

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


, k/ f+ o! W1 G9 I- o9 p参考:# ^6 i6 x. f8 Y( Q
http://blog.csdn.net/firefoxbug/article/details/8688735$ r3 _- @! C+ e# a
http://www.jb51.net/article/51800.htm

【linux】终端直接执行py文件,不需要python命令
1 T6 E: E8 w5 l0 Y. M; c1 _$ K先将终端所在路径切换到python脚本文件的目录下; l; @$ i+ B: n
然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
, Y4 I+ T+ s0 _  r0 p; H2 Vchmod 755 ./*.py' h, J6 c/ L5 m- o
然后执行。
2 \6 ?! g1 h; x* y3 y) ~如果在脚本内容的开头已经给出了类似于如下的注释:
$ Y; `0 t3 p5 N. L; r/ ]0 J9 x8 {#!/usr/bin/env python
% E; g8 l2 b' _# ^% M+ {3 Q. X9 M那就可以直接在终端里运行:) p+ }/ G9 [- G" z7 x, Y
./*.py
2 D  {) U7 H  R4 X6 a如果没有这个注释
2 i) p% S$ G6 [5 y3 h& s就在终端中执行:, P) L9 I( f4 u/ L' V3 l7 M% G
python ./*.py
6 k* ]# G0 X0 x! X  y如果是有图形界面的脚本4 M( u) u) c2 y+ T- e* z' n
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):
2 e) S! W* B3 s/ Y, ^/tmp/A.py  O6 \; `2 A! V( _5 s  m' n
或先切换目录,再运行:
& m5 s3 Z) U8 R  a. J7 Y+ xcd /tmp, Q/ @" j3 j1 o$ i$ L7 r
./A.py
3 C; b* E. e2 v如果该文件需要修改跟用户权限下的一些文件或目录
9 u/ [1 p) V8 r+ H: ^; O4 X就将自身提升为跟用户权限:
$ v2 |' ^4 |, i- ]/ _9 W8 k! zsudo /tmp/A.py
5 }+ [  \% g9 {+ G" y) C或直接将自身提升为跟用户再运行:
& W+ A6 Y5 o& |+ csu root+ Y$ c9 b! v8 x& [
/tmp/A.py
" i1 Z; d1 V" U. X! r$ C1 t5 L另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中
2 ^9 ^# W; ]/ z3 {+ y$ V2 o执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found6 e' N5 d  v1 z1 D7 F
执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied
4 j! H9 A- A+ Z1 q! Q使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:6 O% \) z& ?3 A9 B+ o! @( P6 b
1.
# n- Q* y$ m# l文件开头没有执行注释:#!/usr/bin/env python
4 C; U4 v2 X- a/ l; _; |4 ?, l但你之前说有这一行1 W4 f0 [7 S; b
2.0 R# a6 z. {( n: Q( L# K# V5 Q/ ?
就是没用chmod4 z9 I, T6 E3 L
上面说了,最开始要给脚本设置权限# t7 V$ `4 F( @: `
如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
5 \: R( G+ y  `# J& K& H4 E. ^如果还有别人用,就给个chmod 755 /tmp/A.py好了
; f: y0 }5 h) h) @( m/ i3 v& |这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系: T0 D6 _" q0 v. F: I0 C
简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。
2 q2 t( S6 C& x0 M. H! y! R. x6 l- V& l! G7 L
如果以上两个都试过了,还是不行,我就无能为力了$ I% F0 \: I. N5 E6 S8 s1 D
确认一下是否正确安装了python解释器吧~~
3 ]5 H! s! [+ o& z, F然后尝试着直接调用python去执行吧:
- ~. X. z# s! o1 S+ lpython /tmp/A.py7 x. f/ V! ~; i! j; |( k
类似这样的命令。当然必要的时候chmod和sudo也是用的。
9 h! q1 g- R% {* |2 P0 d, A$ r" X% m7 I

- l8 n4 [$ W. y& Z; l! M2 ~2 Z; k; I/ k6 c- x6 w& L
参考:0 I8 B6 S# ]- h9 d- u
http://www.cnblogs.com/lizunicon/p/3509393.html


TOP

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