centos 7 python版本更新
原版本2.7.5 更新版本2.7.13
注:由于linux自带的python,系统对其有一定的依赖,因此建议保留原来的版本;常常出现的是yum功能问题;另 centos 7版本可以使用yum安装的方式进行pip安装,比手动安装更快捷方便
1.安装依赖包
yum -y install gcc
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel
2.包下载:
wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
3.解压:
tar -zxvf Python-2.7.13.tgz
4.创建安装目录:
mkdir /usr/local/python2.7.13
5.切换目录:
cd Python-2.7.13
6.编译
./configure --prefix=/usr/local/python2.7.13
结果:
done
checking for ensurepip... no
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Modules/Setup.config
config.status: creating Misc/python.pc
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup
creating Modules/Setup.local
creating Makefile
If you want a release build with all optimizations active (LTO, PGO, etc),
please run ./configure --enable-optimizations
please run ./configure –enable-optimizations (这一句可不执行)
7.安装:
make && make install
结果:
rm -f /usr/local/python2.7.13/share/man/man1/python.1
(cd /usr/local/python2.7.13/share/man/man1; ln -s python2.1 python.1)
if test "xno" != "xno" ; then \
case no in \
upgrade) ensurepip="--upgrade" ;; \
install|*) ensurepip="" ;; \
esac; \
./python -E -m ensurepip \
$ensurepip --root=/ ; \
fi
8.查看原来版本,记录原版本号
# python --version
Python 2.7.5
9.更新版本:
[root@mongodb ~]# which python
/usr/bin/python
[root@mongodb ~]# ll /usr/bin/python
lrwxrwxrwx 1 root root 7 May 8 12:09 /usr/bin/python -> python2
重命名python为旧版本号,并建立新版本的连接
mv /usr/bin/python /usr/bin/python2.7.5
ln -s /usr/local/python2.7.13/bin/python2 /usr/bin/python
10.验证:
# python -V
Python 2.7.13
- 安装完成后,安装pip:
使用yum进行安装
yum install python-pip
若出现
No package python-pip available.
则解决方法如下:
yum -y install epel-release
yum install python-pip
安装完成后清理
yum clean all
12.pip验证
# pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
13.为提高pip的安装速度,使用国内的pip源,这里更新pip源为阿里源:
mkdir ~/.pip/
vi ~/.pip/pip.conf
写入:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
14.安装flask验证:
# pip install flask
Collecting flask
Downloading http://mirrors.aliyun.com/pypi/packages/77/32/e3597cb19ffffe724ad4bf0beca4153419918e7fa4ba6a34b04ee4da3371/Flask-0.12.2-py2.py3-none-any.whl (83kB)
100% |████████████████████████████████| 92kB 660kB/s
Collecting click>=2.0 (from flask)
Downloading http://mirrors.aliyun.com/pypi/packages/34/c1/8806f99713ddb993c5366c362b2f908f18269f8d792aff1abfd700775a77/click-6.7-py2.py3-none-any.whl (71kB)
100% |████████████████████████████████| 71kB 1.0MB/s
Collecting Jinja2>=2.4 (from flask)
Downloading http://mirrors.aliyun.com/pypi/packages/5e/73/10c45b82a88ed6b7751bd40da31eeefd7b362e07b56a99aa6e56655a0794/Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
100% |████████████████████████████████| 348kB 829kB/s
Collecting Werkzeug>=0.7 (from flask)
Downloading http://mirrors.aliyun.com/pypi/packages/97/02/306e0d57fdbf467ec1c763bc1757ec6ba20b1332e0ea7e49111533d71d1c/Werkzeug-0.12.2-py2.py3-none-any.whl (312kB)
100% |████████████████████████████████| 317kB 2.8MB/s
Collecting itsdangerous>=0.21 (from flask)
Downloading http://mirrors.aliyun.com/pypi/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz (46kB)
100% |████████████████████████████████| 51kB 23.1MB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask)
Downloading http://mirrors.aliyun.com/pypi/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz
Installing collected packages: click, MarkupSafe, Jinja2, Werkzeug, itsdangerous, flask
Running setup.py install for MarkupSafe ... done
Running setup.py install for itsdangerous ... done
Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 flask-0.12.2 itsdangerous-0.24
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
最后
You should consider upgrading via the ‘pip install –upgrade pip’ command.
可以使用pip install –upgrade pip升级pip,也可以不用升级,这里忽略
python版本更新后,yum出现问题
报错:
ImportError: No module named urlgrabber.grabber
解决办法:
[root@mongodb man1]# yum list
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00:00
epel/x86_64/metalink | 6.3 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 3.4 kB 00:00:00
mongodb-org | 2.5 kB 00:00:00
updates | 3.4 kB 00:00:00
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Exiting on user cancel
A. 修改/usr/bin/yum python的路径:
#vi /usr/bin/yum
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.7.5
在使用yum 安装的时候同样会遇到
ImportError: No module named urlgrabber.grabber
yum install gcc
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirror01.idc.hinet.net
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
Exiting on user cancel
B. /usr/libexec/urlgrabber-ext-down 也需要修改:
vi /usr/libexec/urlgrabber-ext-down
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.7.5
至此,安装完成