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




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

本来python是2.4的,好像不支持requests模块.) T! C2 z- w: k
CentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.
" @8 q! H$ K! Z$ \: }5 G7 A# {! E) C3 o% H7 h  c3 O/ S7 @+ _7 }' 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

' ~- ~) ~* v7 d* i9 B2 c

# 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

& F, r7 [3 a: g+ T! K- G0 {3 [: F

这时候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.74 p0 f4 j  A" ]6 \" Q
//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4

$ i/ N; y( Q: J$ Y5 E* }# \' _

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

" a8 [/ ^. Z& m7 S5 K; ]% k
参考:
* Q3 a* V8 i) ^http://blog.csdn.net/firefoxbug/article/details/8688735
' `* Q- F+ \+ _0 y. jhttp://www.jb51.net/article/51800.htm

【linux】终端直接执行py文件,不需要python命令
, l6 \: G2 U" o( M3 W3 H先将终端所在路径切换到python脚本文件的目录下
2 Y2 D& \  p. ]5 I然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):5 ~% |5 p. }4 H3 `( l; A1 x
chmod 755 ./*.py
3 E! I( Z& B* u& s1 e! u然后执行。% G: y3 @" D7 p4 \
如果在脚本内容的开头已经给出了类似于如下的注释:
* \& h( t  v# {+ D: H  j& ?#!/usr/bin/env python
& {1 m8 o( i( J3 n% `& X# U& w* M那就可以直接在终端里运行:& v& _' z# J0 r9 V7 {8 k4 a
./*.py( v8 n  \6 }" k+ e; F
如果没有这个注释
, Q) C8 j; P% O就在终端中执行:1 }. {1 K& c5 q9 {$ \7 J; d* W+ ~
python ./*.py$ ]' f* o3 u8 e2 h
如果是有图形界面的脚本! ^& o1 M+ T- p, S" \- D  e4 |. K
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):
$ g2 L% N* j+ t, `1 h, P/tmp/A.py, J" [2 w. W3 f* j+ h0 R" C
或先切换目录,再运行:  _3 q0 c# d* H) M
cd /tmp
! m4 b# U3 `( \2 i./A.py; ~' n8 X9 k5 M9 i8 i3 C8 T
如果该文件需要修改跟用户权限下的一些文件或目录. F2 l: e' {' t: [3 r$ a6 h4 q; Z
就将自身提升为跟用户权限:
; A! @+ c$ p, u' L8 t3 h3 j  p6 P3 \  `sudo /tmp/A.py
2 M( p& `* f# {9 a1 Z0 x" P或直接将自身提升为跟用户再运行:
. ~& G4 e% m0 a, X7 y  K- ^9 g7 Tsu root
" q/ Q3 G, |! p  C/tmp/A.py
$ c% v! p% K' E6 B" Q2 Y另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中
0 U! _/ i2 s' R# M  ?执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found
. q% }# H% m  K9 X% s8 h执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied
* f3 n2 T8 D8 N6 ]9 T- O! x* X使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:% P% g$ O1 a  D9 V# r! S
1.- @0 C% Z' p6 ?& u3 ]% m% L
文件开头没有执行注释:#!/usr/bin/env python6 I2 O- i" {3 ]
但你之前说有这一行
. _( ]" w3 ?5 Y# U" Q6 X2.5 A& A- \) |. T# ?; B& C
就是没用chmod: j3 i" }. i. [& M6 g
上面说了,最开始要给脚本设置权限* _- N* h( T1 e/ ~# z. q6 d
如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
' K; K3 N! V; J' f) [5 ]如果还有别人用,就给个chmod 755 /tmp/A.py好了6 w. p4 D  A8 E/ Z0 O
这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系; Q, G# `' G# A; _
简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。
- S, P: _# Q2 p% E6 z
: t; B' b4 D! m& T2 g) \如果以上两个都试过了,还是不行,我就无能为力了; j) }7 D0 {% l: o
确认一下是否正确安装了python解释器吧~~
0 N/ Z+ h" w4 v9 f% l然后尝试着直接调用python去执行吧:
% y% O3 o& t) J+ Ypython /tmp/A.py% M( G2 C/ v- r8 T+ B
类似这样的命令。当然必要的时候chmod和sudo也是用的。% g! |$ }+ ]+ f0 S) e
8 `& w5 m  t+ a; T' W

3 L) J' M1 A6 z& B: s
4 c0 l, [7 I' M. f参考:
' @  d* v% [+ X# q8 i% T' K3 Ahttp://www.cnblogs.com/lizunicon/p/3509393.html

TOP

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