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




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

本来python是2.4的,好像不支持requests模块.8 I: e' S% l2 |7 b" I2 @5 l
CentOS上安装的python版本是2.4/2.6,不能满足我运行软件的要求,所以对python进行升级。Python的最新版本已经是3.3,但是Python3的兼容性可能还有一定的问题,所以还是升级到2.7较为保险。我就升级到python2.7,结果yum又不能用了.下面是完整的解决方案.; E4 l* z" w" L+ Q$ n: v
0 N6 M( O3 I. f

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


' p7 T- V  S- j. ]* y( {0 t

# 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 v0 C; Q( F% J1 a5 K" g

这时候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
* G) {" N  v3 r  K+ N' F( W# f//后面安装setuptools要用到

# python -V

Python 2.7

这个时候yum又不能用了

# vim /usr/bin/yum

#!/usr/bin/python

改成

#!/usr/bin/python2.4

  n; M8 n7 T0 l7 K0 A/ R5 T

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


$ u4 E6 M  m0 S5 I  ^, M参考:* e! u: K6 P7 d4 [3 C5 R
http://blog.csdn.net/firefoxbug/article/details/8688735
2 E% [* |( r0 E( `5 chttp://www.jb51.net/article/51800.htm

【linux】终端直接执行py文件,不需要python命令3 Q% q& o' [% v% }0 {- B
先将终端所在路径切换到python脚本文件的目录下
. x0 G6 S& f3 c! C9 j然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
2 w' g9 H* N/ B6 _chmod 755 ./*.py: P& f& k& L+ z7 J, }
然后执行。. o9 A( R- ]# l  x' X5 ?
如果在脚本内容的开头已经给出了类似于如下的注释:
5 u/ z6 U) y8 |#!/usr/bin/env python) d8 |: z  J8 N; N$ L5 K
那就可以直接在终端里运行:
- S; M/ w) X! i- p./*.py+ q, N; x4 Z& j
如果没有这个注释
' O  L* Q9 I# {就在终端中执行:" q! c& a. u. T7 B
python ./*.py7 S# V: }' A$ e# b, z/ o" w" O  e
如果是有图形界面的脚本# F# [, `0 X( ~4 Z$ Q# v3 |
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可追问如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python回答那就直接运行(假设你的文件名是A.py):
( f0 `- @4 v1 E& w6 h/tmp/A.py
. @) l) g/ w1 r7 o4 _0 ]或先切换目录,再运行:9 z) U3 k6 I# Z( Y2 k& S$ P; p
cd /tmp7 H, X( w/ J/ U! e; d
./A.py4 D7 Z# @, h$ v: L2 D& X4 o( D
如果该文件需要修改跟用户权限下的一些文件或目录( Q! k' P, S7 O2 @! L
就将自身提升为跟用户权限:
( W7 {; Z& j  ^6 Jsudo /tmp/A.py# R* Y8 ^7 Z1 _* C+ l
或直接将自身提升为跟用户再运行:! T( D  m# p' H
su root$ {3 G* R* V& y( R; n/ n6 k
/tmp/A.py$ s: }: A0 [  C
另:Ubuntu等发行版默认不支持su root的操作,只能用sudo追问把A.py文件放入tmp文件夹中
9 I  L, }; _2 Z; U; i5 x/ ^执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found  p( q5 b0 K! W
执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied( d) b# R9 @/ a0 A
使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?回答这样的话,我知道的一般有两种情况:
4 u5 n: @1 G& ]$ {% k1.9 c# C# O7 I! b" Z
文件开头没有执行注释:#!/usr/bin/env python
2 j8 \* L' k% S- P( W/ V; U* t4 X) f( N但你之前说有这一行* l2 \1 n. h7 e0 |/ y1 i
2.
/ k9 p1 ~2 x  L( l% L# c就是没用chmod0 T6 C+ L5 {  w/ x2 r
上面说了,最开始要给脚本设置权限
0 n& j  s6 E+ S; X; |7 V% x如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
5 [6 q% B) U1 P) H6 B如果还有别人用,就给个chmod 755 /tmp/A.py好了8 C& @, I, h' l2 |! n  i7 c
这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系
1 [7 e. s! T5 c# Y简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。
. V6 T. r# R4 \% }7 G# _2 t3 R/ E3 @6 |3 U! |
如果以上两个都试过了,还是不行,我就无能为力了2 v$ M2 Q7 R: I4 M+ H6 `
确认一下是否正确安装了python解释器吧~~
* T' ~$ t& u( V) m然后尝试着直接调用python去执行吧:
8 c6 D$ z8 a; p: G  b1 X' b3 Z/ epython /tmp/A.py
" _+ v  O: m9 D3 a' U) P2 L5 K类似这样的命令。当然必要的时候chmod和sudo也是用的。0 W; j! I/ s+ a: r% o1 B
2 `0 w  G- r+ O+ R, Z

9 O6 H/ {$ k3 q& I
1 x, c( f" E( ?# _参考:8 Q# Y. c2 ^/ \" j2 y5 E/ s# b
http://www.cnblogs.com/lizunicon/p/3509393.html

TOP

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