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即可每次开机启动就进入虚拟环境