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




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

本来python是2.4的,好像不支持requests模块.
6 p6 L; n4 H7 B: A! kCentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.& o6 i* M4 X7 n& y" R# N- L
& Z( F) K. N. o7 @; z: |) y3 T

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

' H  Y( f; z& K5 v

# 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


" R+ W5 J; K5 P1 N4 I

这时候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
+ }& ?' ?2 ?: k1 X6 M//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4

% o- `2 ^/ ]5 E, }8 X

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


- z$ w1 ?4 v/ O6 T! f; p9 w: `参考:
* z; R- a7 I+ M8 V+ {+ j4 E4 I8 Ihttp://blog.csdn.net/firefoxbug/article/details/8688735
/ m; ?4 U1 I! {6 V% Ahttp://www.jb51.net/article/51800.htm

美国VPS、域名代购:http://tu8l.taobao.com

【linux】终端直接执行py文件,不需要python命令
1 Z. Y& f, x: o0 O$ Y) J先将终端所在路径切换到python脚本文件的目录下) Y+ t4 H+ ^# T. U; L6 {
然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):, Q0 K5 `+ w6 E9 n7 z! k0 Z/ O
chmod 755 ./*.py
5 U" ^# X% Q6 x$ l. X然后执行。
' z2 W! q0 H# h; W, S0 P' `如果在脚本内容的开头已经给出了类似于如下的注释:: ~1 t1 W4 w8 N, G& I
#!/usr/bin/env python/ K0 W+ m. D7 n4 @) i3 o4 \( N
那就可以直接在终端里运行:) n, m$ I* a! B
./*.py! }7 K" q: g& l# [
如果没有这个注释
$ D* t4 m. w! s& }) k7 j就在终端中执行:
& D, p3 ]) v  L/ f9 X2 A: h3 k+ zpython ./*.py5 ^' s: U' B$ G" n+ K+ f
如果是有图形界面的脚本
; e8 N, Z% t8 W7 V% t. R- @3 X2 L在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):' i5 X0 r. \7 ?0 A8 V- V
/tmp/A.py! T1 v5 X! g$ @7 O
或先切换目录,再运行:0 K1 K1 f* k7 k/ c4 X# {) f6 N9 V
cd /tmp, Y* B9 f2 C& W% L
./A.py
! F- I  T  k% X% `. g) R如果该文件需要修改跟用户权限下的一些文件或目录5 ]' o* E8 d% m, B; G, J
就将自身提升为跟用户权限:
+ w2 ~3 |3 ?4 i5 ]% b, A! k! u" fsudo /tmp/A.py
& S, G' s$ Q9 t  ^或直接将自身提升为跟用户再运行:
- C- Y- W) I3 D' T6 e6 nsu root" y% C$ S- O/ g7 \2 u0 C
/tmp/A.py: u' d/ L; c) C/ e3 h
另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中
# Q& y$ A' ]' K, n( G, A执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found
# x- P  c& p7 e4 a( B执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied
( T8 ~) g  ?9 i  z! U使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:
" D7 q% L  a+ Z: G1.
" C7 K7 R% ~3 M2 q4 r/ z: h* Q文件开头没有执行注释:#!/usr/bin/env python
! d! @- B0 Q! K4 Q' |3 I. d但你之前说有这一行
3 n6 \' G$ T& h; c  _2.
" Z# B7 r  g4 F+ j就是没用chmod6 X& \9 d- {& H' S4 K, U, h, O, `
上面说了,最开始要给脚本设置权限
# g1 V; _6 B2 `1 n' t" G4 Z如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
- Q& i% ^' q8 j3 i) T如果还有别人用,就给个chmod 755 /tmp/A.py好了2 I& W) D+ }3 U7 |. @; E
这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系5 S$ h; Q7 l3 U. t
简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。1 B" S8 X& r3 L8 ]2 f4 i+ v( j

$ l9 W, G: p0 ~1 E+ {3 Q+ e6 Y5 W如果以上两个都试过了,还是不行,我就无能为力了5 g% B! a" x; q0 ?' a& n
确认一下是否正确安装了python解释器吧~~) \( o/ M, d$ k
然后尝试着直接调用python去执行吧:
7 u* H/ c# ~7 a3 A6 ]( @python /tmp/A.py
& U7 Y1 J7 ~( {6 d* X1 V类似这样的命令。当然必要的时候chmod和sudo也是用的。
8 x6 H1 X7 b2 A; V1 M4 n& D
% H/ D6 |7 {; y! ?  ?, k' K) x7 [# N5 {
" k3 G( {, p% s3 d( @+ z
参考:
+ l( C" T7 z  s# ]; O) dhttp://www.cnblogs.com/lizunicon/p/3509393.html

美国VPS、域名代购:http://tu8l.taobao.com

TOP

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