0. 前言
填前篇博客的坑。
一开始有这个需求,是因为一来自己比较熟悉python 2.7.x,二来要用Flask需要python 2.7以上的版本,但是系统的自带的Python是2.6版本。而且yum和python 2.6深度绑定了,直接升级替换会导致yum无法使用。百度了一番教程,也踩了些坑,这里记录备忘。
1. 安装python 2.7
防坑直通车
Flask 依赖于两个外部库: Werkzeug 和 Jinja2 。 Werkzeug 是一个 WSGI (在 web 应用和多种服务器之间开发和部署的标准 Python 接口) 的工具集,Jinja2 负责渲染模板。而安装Flask的前提条件:
1.已安装python2.x版本
2.已安装easy_install
我先是按照这个教程CentOS升级Python到2.7来安装的,事实上,任意一个以“Centos 6 python 2.6升级到2.7”或类似关键词为标题的教程文章,讲的内容都大同小异。
先wget获取python源代码,这个可以在官网选择自己喜欢的压缩文件,我选择的是2.7.6
然后执行下面的命令
tar -xvf Python-2.7.8.tgz
cd Python-2.7.8
./configure --prefix=/usr/local/python2.7
make
make install
安装好后可以运行一下Python看看是否升级了版本
/usr/local/python2.7/bin/python2.7 -V
但这时候仍然不方便,需要建一个软链接,替代默认的python命令
ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python
之前的可以备份一个
mv /usr/bin/python /usr/bin/python.bak
运行python查看版本
python -V
这时候应该已经是2.7.8版本了
然而,进行更改后,yum应该无法运行了,提示没有yum这个module。
需要修改/usr/bin/yum文件,指定python解释器位置
vim /usr/bin/yum
将第一行的
#!/usr/bin/python
改为指向系统原有的python版本:
#!/usr/bin/python2.6
以后如果yum升级之后,这个配置文件会恢复默认,yum再次无法运行的时候来这里指定相应的解释器即可。
2. 安装easy_install和pip
经过上面那个步骤,你会发现python虽然升级了,但easy_install不能用了。
好吧,咱们来安装easy_install
yum install python-setuptools
然后你运行
python setup.py install
提示
No module named setuptools
这是必然的,因为yum把包安错地方了(还记得吗?它的python执行路径是2.6)。
好嘛,得下载源码,编译安装,这里是教程ImportError: No module named setuptools 解决方案,引用如下:
ImportError: No module named setuptools 解决方案
shell中输入:
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
setuptools版本可以自选。
马上我说的坑就来了:你会发现这个setup.py还是安装不了。
经过我百度,这篇充满了坑的文章Centos 六 上安装python-pip给我指明了道路,看来是少安装了zlib这个依赖。
执行下面的命令
#yum -y install zlib*
安装zlib相关的两个包
然后!还记得我们的python吗,这时候得重新编译安装一遍Python,走一遍步骤1,好在这很快。
这时候再进入setuptools的源码目录安装,编译成功,安装成功,大功告成!
然后就可以以正常方式用easy_install安装pip了。神清气爽。
3. reference
CentOS升级Python到2.7
ImportError: No module named setuptools 解决方案
Centos 六 上安装python-pip