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




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

本来python是2.4的,好像不支持requests模块.$ R- U6 s( z0 a' r  ^
CentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.
  N# L* s& e9 y* {
3 u" D: h( z! 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

+ [6 V; a5 m( F! @

# 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


4 {0 M# X# N3 A+ e- h' l

这时候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( o) y6 k3 B: C; _7 d) R
//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4

8 M" d, O$ d4 h

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

# z9 s, B4 s, q- d
参考:- n5 Z0 I& E) o7 e$ \
http://blog.csdn.net/firefoxbug/article/details/8688735+ C4 k' V7 R% i, S0 S" p8 U
http://www.jb51.net/article/51800.htm


【linux】终端直接执行py文件,不需要python命令6 a6 e3 T. |* `7 v9 u, A
先将终端所在路径切换到python脚本文件的目录下
, z% h3 r, c3 F0 h然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
9 F1 a- m# H+ @6 S+ O* ]chmod 755 ./*.py
& s3 Q2 }3 W( w+ M+ B3 [1 L然后执行。$ C) i% J! k5 t9 H" ~" d) }( z; o
如果在脚本内容的开头已经给出了类似于如下的注释:
, ^* W& E- M/ b, ]2 G- ?#!/usr/bin/env python% t5 @9 ^* X: ?
那就可以直接在终端里运行:1 A0 ]0 y. g$ T$ x; `* x% X' E
./*.py1 z+ S% c  @  M& ^: O+ F( N2 i% a1 l
如果没有这个注释+ Z: `! Q! G" r: r! a8 k3 g3 }
就在终端中执行:& u+ {, m. y; F3 U; J: l/ ^+ E
python ./*.py) l/ S) O8 N& a  b/ I3 _! t- H3 {
如果是有图形界面的脚本$ {7 s' b9 P! Q
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):
2 y; M) j5 j5 }$ s% j5 e& j/tmp/A.py7 T/ [5 @* h0 A
或先切换目录,再运行:* v, ?$ l8 z+ `1 M$ f4 r
cd /tmp+ [& F! b8 D, d% x1 E8 h/ E9 y0 Z, M
./A.py
6 v( x2 N, B; s) Z  N- w3 l6 M如果该文件需要修改跟用户权限下的一些文件或目录5 L% a9 A, Z; K/ o4 B
就将自身提升为跟用户权限:
4 X1 e: _- R. Z5 N6 }" T+ z7 ssudo /tmp/A.py+ n5 z$ r* Z) P8 V$ x
或直接将自身提升为跟用户再运行:
2 X* Z+ ~/ V- R: O) t& Jsu root0 W$ W% i& B; q3 C( v
/tmp/A.py
" v/ y9 [, \( W$ }另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中 2 `: S- a: W, `( ?) `  ~8 x. ^) I
执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found
6 _: Y9 w! {) D/ ?执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied1 n# @* m; l% \# }' ~
使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:6 C  f1 s' L0 ?; Q3 P) h) w
1.
2 v# w3 I) `, ]/ E  t7 z: O! e文件开头没有执行注释:#!/usr/bin/env python
( S# U$ ^' _/ s) p) B但你之前说有这一行
; {1 }9 q6 j" \1 z  A% H& o8 ]; o2.) m* u/ V6 Y( \1 {
就是没用chmod
+ B4 d# k3 `2 m. p: A; u; U上面说了,最开始要给脚本设置权限
5 O! _0 y" ]) J, l如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了7 O: U5 Q$ m4 O. H0 f
如果还有别人用,就给个chmod 755 /tmp/A.py好了
/ {' {7 t& J3 U+ v, y; `这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系
: C. W! x. u: }9 t简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。' w4 O" x: ^$ k

6 k! _) H. f% C8 ~# N8 l如果以上两个都试过了,还是不行,我就无能为力了2 z. E  ?1 X" |4 x- g! r# j0 J
确认一下是否正确安装了python解释器吧~~
5 C; c! h( V- _# B6 Y4 ^然后尝试着直接调用python去执行吧:* K0 B* Y( r- h4 L$ J
python /tmp/A.py! W2 X# r& s" V$ n
类似这样的命令。当然必要的时候chmod和sudo也是用的。( r: @6 Q! G* Z1 ~$ T

4 |9 Z* |  l& O; p. x1 m5 Y' s' p: n  T8 e) ~
, ^( r+ E! A/ o7 f: {( D
参考:
0 X7 u' s+ ~' h$ e0 Nhttp://www.cnblogs.com/lizunicon/p/3509393.html

TOP

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