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




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

本来python是2.4的,好像不支持requests模块.: N0 Q3 S5 Z6 n9 O$ T; X
CentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.
; P5 F3 O. a3 |! v5 E
3 a+ y- N, U, v7 l3 B# o4 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


) k1 V" ^1 U$ l! O+ 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


8 {- E* t# h) `- S1 D

这时候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) |1 }, M: q3 {" e9 {
//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4


. {# i; t' }9 _  V# 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

$ d' d: k5 `& g$ @; m& s' k$ P% f+ d
参考:
  z# X2 A  {) a8 A$ L+ vhttp://blog.csdn.net/firefoxbug/article/details/8688735
: E8 o* }- G& m* P3 T# [  [http://www.jb51.net/article/51800.htm


【linux】终端直接执行py文件,不需要python命令/ o* ~( O1 @3 i3 j9 \
先将终端所在路径切换到python脚本文件的目录下
+ o9 m6 r+ D) @, S: p  _然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
$ M  O3 f5 }( j* }5 u- c' gchmod 755 ./*.py
2 C3 I0 |: [# V2 v. u5 o0 b然后执行。. @) F" Y' F7 M* z2 F- ^# ^2 E$ b  R
如果在脚本内容的开头已经给出了类似于如下的注释:
1 P8 y. w  c7 x* O6 Q' j( ^#!/usr/bin/env python: q3 D9 |  i  k. T" W7 e. [3 N
那就可以直接在终端里运行:
3 ?/ h8 p/ t  [! R" P/ b3 `" z./*.py5 ?! P, T5 q$ ^7 n0 h
如果没有这个注释, T9 G2 `1 }: C# x
就在终端中执行:
7 N7 o* p6 D7 K) R* zpython ./*.py
: @4 F4 e4 m6 U7 V/ N  T8 l如果是有图形界面的脚本! H4 W3 `. S: l( E3 }6 Q" P
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):
. w1 a: ~+ M8 m! `, j' Y: q  M/tmp/A.py
2 _" P+ r/ ?$ z. Q) s! L. q3 A或先切换目录,再运行:- X( y! b! c+ ^
cd /tmp
, `( u% o, e9 z* l- |3 e./A.py6 c: M- y0 k8 h$ }, E% m
如果该文件需要修改跟用户权限下的一些文件或目录
$ \# `, S1 c/ m! X& }就将自身提升为跟用户权限:1 }/ G" k6 D/ _8 H9 ]
sudo /tmp/A.py2 K/ M: Q" H3 V; Y+ t! l% X! g
或直接将自身提升为跟用户再运行:- |6 ]" V# i) u! C$ I4 a
su root9 B" {' X& x" I& @, V  A
/tmp/A.py3 Y& z# g7 G  D- [/ B- ~# H6 e
另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中 + ~+ G* H- O* g. X$ V. @5 m
执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found2 M- N0 k% A, e- S
执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied: W5 f1 ?+ H  v6 Q& o) J2 F
使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:4 m% g% f8 }9 p- l
1.
4 D( z7 m9 W% N( M) j6 M5 x文件开头没有执行注释:#!/usr/bin/env python
# o7 R' N# Z& ^+ H但你之前说有这一行
/ _' d" R( D6 s% w4 a# S, H# w2.% ^  O7 b  J6 `9 A9 D1 s& w
就是没用chmod
# Z7 u' l4 J) o0 [* x上面说了,最开始要给脚本设置权限* B  F  _$ y( ^: }. n
如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
4 r; b2 q! _7 f+ c% Y如果还有别人用,就给个chmod 755 /tmp/A.py好了
  P$ K. {) H6 S/ x5 K这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系0 e, H/ b7 O, ]1 Y0 k9 d
简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。/ T8 T& T7 Y% X* F& l

4 _" o# K4 y. W; m1 l如果以上两个都试过了,还是不行,我就无能为力了
- N  U& c$ g0 t; R9 ]确认一下是否正确安装了python解释器吧~~8 X# o. A, Y- |8 [7 A& G
然后尝试着直接调用python去执行吧:- q+ y  T: |9 k  }) _* _( G" r
python /tmp/A.py" E( _+ M3 H" t) F( e9 C
类似这样的命令。当然必要的时候chmod和sudo也是用的。# p$ p  A: o! Y* i

: P6 }! v4 Z' N4 ]' M6 U2 i+ ]; [- f7 X+ X4 v1 h( X* Q1 V* @7 N
* e& s6 r2 ^2 v" L5 ?
参考:. n8 f; H# T9 `& }. `
http://www.cnblogs.com/lizunicon/p/3509393.html




TOP

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