CentOS中升级Python版本的方法详解

yipeiwu_com6年前Python基础

CentOS升级Python2.6到Pythno2.7

最近在Linode上弄Python、出现ValueError: zero length field name in format这样的错误;

翻看文档之后发现只要升级Python到2.7以上版本就能解决问题。

用 Pythno -V 看了一下目前Centos上的版本是2.6的。

CentOS6系列里面默认安装的都是Python2.6的版本

所以我们可能会出现这样的错误

ValueError: zero length field name in format

这个时候我们就需要把Pythno2.6升级到Python2.7以上的版本

升级Python

系统默认安装的Python是2.6.x的,我们需要升级到Python2.7,用wget命令从官方下载源文件,然后解压进行编译

wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
unxz Python-2.7.13.tar.xz
tar -vxf Python-2.7.13.tar

执行完以上命令会解压得到Python-2.7.13这个文件夹,进入该目录并执行以下命令进行配置

./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib

执行

vim ./Modules/Setup

找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz去掉注释并保存,然后进行编译和安装

make && make install

安装好Python2.7之后我们需要先把Python2.6做个备份

执行以下命令,对Python2.6进行备份,然后为Python2.7创建软链接、把Python2.7作为默认Python来用

mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python


然后编辑/usr/bin/yum,将第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6

现在执行yum命令已经不会出现之前的错误信息了。

我们执行python -V查看版本信息,如果出现错误

error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

编辑配置文件

vim /etc/ld.so.conf

查看是否有 /usr/local/lib,没有的话请添加一行、保存退出;

然后刷新配置

/sbin/ldconfig 
/sbin/ldconfig -v

PS:如果你原来在python2.6环境中安装了Pip的话、是需要重新安装

PS2:如果你原来用pip install xxx 安装了第三方库的话也是需要重新安装的

相关文章

Django中间件基础用法详解

前言 django的中间件可以在视图函数执行前执行,比如登陆验证、日志记录等,下面简单说明一下中间件的基础用法,主要为笔者学习时的笔记 1. 在django项目文件夹下创建一个用于存放中...

详解Python循环作用域与闭包

前言 首先来看一段代码 x_list = [i for i in range(30)] y_list = [i for i in range(10, 20)] for y in y...

Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录

简介: MongoEngine 是一个Document-Object Mapper (想一下ORM, 但它是针对文档型数据库),Python通过它与MongoDB交互。你可能会说那PyM...

python全局变量引用与修改过程解析

python全局变量引用与修改过程解析

这篇文章主要介绍了python全局变量引用与修改过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、引用 使用到的全局变量只是...

Python的类实例属性访问规则探讨

一般来说,在Python中,类实例属性的访问规则算是比较直观的。 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此。 在这里,我们需要明白以下几个地方:...