centos python2.6升级到2.7出现的问题

centos自带的python版本为2.6,在使用tornado时会出现如下报错:

NameError: global name 'memoryview' is not defined

因此需要升级到python2.7,升级过程出现如下问题:

升级到2.7:

1.下载安装包、解压安装:

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

tar -jxvf Python-2.7.3.tar.bz2

cd Python-2.7.3

./configure
make all
make install
make clean
make distclean
指定yum的python版本:
vi /usr/bin/yum
将文件头部的

!/usr/bin/python

改成

!/usr/bin/python2.6.6

6.建立软链接:
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python

至此,python版本已升级,但是pip却用不了了

安装pip

先安装setuptools:

$wget --no-check-certificate http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz (### 此步骤如果提示SSL is reqired只需要将下载链接改成https://pypi........即可)
$tar zxvf setuptools-0.6c11.tar.gz
$cd setuptools-0.6c11
$sudo python setup.py build
$sudo python setup.py install
这个时候又提示找不到zlib模块,
$ yum install zlib
$ yum install zlib-devel
######### 然后进入python2.7的解压路径重新安装python(一定要执行此步骤,否则一直提示zlib模块错误)
$cd Python-2.7.3
$make
$make instal
然后再次$cd setuptools-0.6c11目录sudo python setup.py install即可成功安装setuptools
测试
$easy_install --help

####### 然后安装pip:
curl -O https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz
解压后 进入目录 python setup.py install
安装完成后执行pip list

此时pip list报错:

ImportError: cannot import name HTTPSHandler

安装openssl 和openssl-devel即可:

yum install openssl -y

yum install openssl-devel -y

移动到python文件的解压路径重新安装python:

cd Python-2.7.3

./configure

make install

然后pip命令就能正常使用了,pip install sqlalchemy

使用python2.7的虚拟环境:

pip install virtualenv
virtualenv pyenv  -p python --no-site-packages

或者 virtualenv -p python py2.7env 或者(在安装了py3的情况下可以指定为python3)
# virtualenv -p /usr/bin/python ENV2.7
然后vim ~/.bashrc 在末尾添加 source [ENV2.7的绝对路径]/bin/activate
然后source ~/.bashrc即可每次开机启动就进入虚拟环境

原文地址:https://www.cnblogs.com/lajiao/p/8085303.html