centos7 64位 python2升级python3及安装pip
centos7自带的python2.7,这里介绍下如何升级为python3。
注意:首先安装依赖包
否则后期使用时会出现问题,比如pip3 install 第三方包时,由于没有提前yum openssl-devel,导致报错。
centos pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
1.创建安装目录
sudo mkdir /usr/local/python3
2.从python官网下载压缩包
右键—>复制链接地址,为https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
进入/usr/local/python3路径,使用wget命令下载安装包
cd /usr/local/python3
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
3.解压xxx.tar.xz文件
xz -d Python-3.6.0.tar.xz
tar -xvf Python-3.6.0.tar
或者使用单个命令
tar -xvJf Python-3.6.0.tar.xz
4.编译并安装
cd 进入解压目录,然后
sudo ./configure --prefix=/usr/local/python3
sudo make
sudo make install
编译出现一个问题,
zipimport.ZipImportError: can’t decompress data; zlib not available,查找资料发现,zlib系列包安装不全。
参考文章
解决办法:
yum -y install zlib*
然后修改python安装目录下的Setup文件,/usr/local/python3/Python-3.6.0/Modules/Setup
将#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 去掉注释,即
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
重新编译安装成功。
sudo make
sudo make install
5.替换python
cd /usr/bin
其中有python, python2.7, python2三个文件,其实都是指向python2.7的,这里将python备份
mv python python.bak
sudo ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
python -V 检查python的版本是否被正确替换掉了。
6.收尾替换工作
原则: 如果程序只能在python2.7下执行,则替换为python2.7。
- 由于yum使用python2,替换为python3后无法正常工作,因此修改yum配置文件:
sudo vi /usr/bin/yum
将第一行指定的python版本改为python2.7:
#!/usr/bin/python改为 #!/usr/bin/python2.7
- 修改urlgrabber配置文件(网上很多教程都漏了这一步)
sudo vi /usr/libexec/urlgrabber-ext-down
同yum,把头部的python改成python2.7
- gnome配置修改,修改python的版本后,nome-tweak-tool 也就是优化工具打不开
解决办法: gnome-tweak-tool 文件 #!/usr/bin/python换成 #!/usr/bin/python2.7 就可以了
vim /usr/bin/gnome-tweak-tool
7.python3安装pip
python3安装完成后默认已经带有pip3,如图示
你可以用以下命令,创建软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
参考:
https://blog.****.net/blueheart20/article/details/70062671
https://www.jianshu.com/p/74227d7ae6a6
https://blog.****.net/fake_hydra/article/details/81631270
https://blog.****.net/u014749862/article/details/54430022
https://www.jianshu.com/p/758b592387d1
pip3安装第三方库报错
pip3 install selenium
报错pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
在网上查找解决办法如下,需要yum安装 openssl-devel后,再编译python。
为了避免其他人遇到这个问题,在文章头部做了补充,参考【首先安装依赖包】部分。
If you are on Red Hat/CentOS:
# To allow for building python ssl libs
yum install openssl-devel
# Download the source of *any* python version
cd /usr/src
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar xf Python-3.6.2.tar.xz
cd Python-3.6.2
# Configure the build w/ your installed libraries
./configure
# Install into /usr/local/bin/python3.6, don't overwrite global python bin
make altinstall