linux升级python

最近对一批闲置的服务器进行维护,期间使用到python脚本来批量进行操作,可是发现python版本过低。于是对python版本进行升级

1.下载Pyhon,选择下载Gzipped source tar ball (2.7.3) (sig)

wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2

2.解压安装,命令如下

tar -xvf Python-2.7.3.tgz
cd Python-2.7.3
./configure --prefix=/usr/local/python2.7
make
make install
make clean
make distclean

3.创建链接来使系统默认python变为python2.7

ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python

4.查看Python版本

python –V

5.修改yum配置(否则yum无法正常运行)

vi /usr/bin/yum

将第一行的

#!/usr/bin/python

修改为系统原有的python版本地址

#!/usr/bin/python2.6

PS:

1在make的时候提示我

Failed to build these modules:
_sqlite3 

在网上查了一下解决办法:编辑源码下的connection.c这个文件

vi Python-2.7.3/Modules/_sqlite/connection.c


#include "cache.h"
#include "module.h"
#include "connection.h"
#include "statement.h"
#include "cursor.h"
#include "prepare_protocol.h"
#include "util.h"
#include "sqlitecompat.h"
#include "pythread.h"
#define ACTION_FINALIZE 1
#define ACTION_RESET 2
#if SQLITE_VERSION_NUMBER >= 3003008
#ifndef SQLITE_OMIT_LOAD_EXTENSION
#define HAVE_LOAD_EXTENSION
#endif
#endif

下面添加上

#ifdef SQLITE_INT64_TYPE
typedef SQLITE_INT64_TYPE sqlite_int64;
typedef unsigned SQLITE_INT64_TYPE sqlite_uint64;
#elif defined(_MSC_VER) || defined(__BORLANDC__)
typedef __int64 sqlite_int64;
typedef unsigned __int64 sqlite_uint64;
#else
typedef long long int sqlite_int64;
typedef unsigned long long int sqlite_uint64;
#endif
typedef sqlite_int64 sqlite3_int64;
typedef sqlite_uint64 sqlite3_uint64;

再次make,没有报错。


附注:

解决问题是借鉴了这个博文:

http://blog.hijiam.com/page/2


你可能感兴趣的:(linux升级python)