在搭建Calibre-web的时候遇到了一点问题,pip老是出错,看了一下腾讯云CentOS7自带的Python是2.7,打算给它升个Python3,不小心把Python2.7和yum pip给一起删了,草
因为一些东西是依赖Python2的,装Python3的时候不能删
删除原环境
1
| python -m pip uninstall pip
|
1 2 3
| rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps # 删除Python,解除关联 whereis python |xargs rm -frv # 删除残余文件 whereis python # 检查是否完全删除
|
1 2 3
| rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps whereis yum |xargs rm -frv whereis yum
|
配置新环境
从网上找教程要么是依赖yum安装Python,要么是依赖Python安装yum。。。
首先查看CentOS的版本号,后文选择对应的版本
我的系统版本是7.9.2009
- 下载Python2.7
从网易镜像站下载,此处以我的系统版本为例
如果提示404应该是更新了,可以自己上去找新版本复制链接
1 2 3 4 5 6 7 8 9 10 11 12
| mkdir /usr/local/src/python cd /usr/local/src/python wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-devel-2.7.5-89.el7.x86_64.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-libs-2.7.5-89.el7.x86_64.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-setuptools-0.9.8-7.el7.noarch.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-urlgrabber-3.10-10.el7.noarch.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/rpm-python-4.11.3-45.el7.x86_64.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/libxml2-python-2.9.1-6.el7.5.x86_64.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpm
|
1 2 3 4 5 6 7
| mkdir /usr/local/src/yum cd /usr/local/src/yum wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/yum-updateonboot-1.1.31-54.el7_8.noarch.rpm wget http://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
|
1 2
| cd /usr/local/src/python rpm -ivh python-* rpm-python-* libxml2-* --nodeps --force # 强制安装,不考虑依赖
|
1 2
| cd /usr/local/src/yum rpm -ivh yum-*
|
1
| yum -y install python-pip
|
到此Python2.7和yum的重装完成。
安装Python3
1
| yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
|
- 下载Python3
我这里下载3.10.1,如果想下载新版本可以去官网找
如果速度慢可以手动下载上传
1 2 3
| cd /usr/local wget https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tgz tar -zxvf Python-3.10.1.tgz
|
1 2 3 4
| mkdir /usr/local/python3 cd Python-3.10.1 ./configure --prefix=/usr/local/python3 make && make install
|
- 设置软链接(快捷方式)
注意这里是3.10不是3.10.1
1 2
| ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3
|
到此完成所有工作。可以再检查一下各个版本是否正确
1 2 3 4 5
| python -V python3 -V pip -V pip3 -V yum --version
|
后记
安装之后又遇到pip3的警告:WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
上网查是缺openssl,然而输入openssl version
显示有1.0.2版本,于是打算升级一下
1 2 3 4 5 6 7 8 9
| wget https://www.openssl.org/source/openssl-1.1.1m.tar.gz tar -zxvf openssl-1.1.1m.tar.gz cd openssl-1.1.1m ./config --prefix=/usr/local/openssl # 如报错需要安装perl及gcc包 make && make install mv /usr/bin/openssl /usr/bin/openssl.bak ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl echo "/usr/local/openssl/lib" >> /etc/ld.so.conf ldconfig -v
|
查看版本更新到了1.1.1,然而并没有解决问题
再和openssl一起重新编译Py3
1 2 3
| cd /usr/local/Python-3.10.1 ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl make && make install
|
完事。顺便更新一下pip
1
| /usr/local/python3/bin/python3.10 -m pip install --upgrade pip
|