根据各路大神的方法整理一下自己解决的步骤
注意:不要手贱删python2!想用python3就安装并用python3命令
重新安装python2
- 查看系统版本:
cat /etc/redhat-release
- 进入默认的安装地址:注意查看一下rpm文件是不是删干净了(有的看上去还在,但是注意文件大小(2.2KB)其实是无效文件)
cd /usr/local/src/python
- 我是7.9.2009,因此找到相应的packages并下载:(下载地址)
其实不同版本的名字都很类似,注意一点不要漏下了 - 把文件上传至/usr/local/src/python中,并开始更新:
rpm -Uvh --replacepkgs python*.rpm --nodeps --force
rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm --nodeps --force
rpm -Uvh --replacepkgs libxml2-python*.rpm --nodeps --force
注意“ --nodeps --force”必须加,要不会报依赖包的错误
- 完成更新,可以用python --V检查一下
安装python3
- 依赖包安装:
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 libffi-devel
- 网站下载tgz的python3安装包并上传到任意位置进行解压:
tar -zxvf Python-3.9.9.tgz
- 在/usr/local/ 输入指令:mkdir python3
- 到解压路径进行安装
cd Python-3.9.9
./configure --prefix=/usr/local/python3
make && make install
- 建立软链接
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3
注意:可能会报错“ln: failed to create symbolic link ‘/usr/bin/python3’: File exists”,把“-s”改成“-sf”即可
6. 完成安装并验证
python3
pip3
- 安装第三方包:
首先在本地机(注意要是Linux,且python版本差距不大,否则还是乖乖一个个去官网下载吧)将离线包全部下下来:
# 进入要保存的路径
cd D:
# 获取离线包的列表
pip freeze > requirement.txt
# 下载安装包至D:/packages3.9
pip download -d D:/packages3.9 -r D:/requirements.txt
将包全部放至服务器中某位置并开始安装:
pip3 install --no-index --find-links=./packages3.9/ -r ./requirements.txt
- 报错处理方法
ERROR: numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl is not a supported wheel on this platform. linux
下载的版本不对,可以通过以下命令查看合适的版本:
pip3 debug --verbose
这里只展示一部分结果
pip version: pip 21.2.4 from /usr/local/python3/lib/python3.9/site-packages/pip (python 3.9)
sys.version: 3.9.9 (main, Nov 6 2023, 16:12:37)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
sys.executable: /usr/local/python3/bin/python3.9
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
name: cpython
'cert' config value: Not specified
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /usr/local/python3/lib/python3.9/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:
appdirs==1.4.4
CacheControl==0.12.6
colorama==0.4.4
distlib==0.3.2
distro==1.5.0 (Unable to locate actual module version, using vendor.txt specified version)
html5lib==1.1
msgpack==1.0.2 (Unable to locate actual module version, using vendor.txt specified version)
packaging==21.0
pep517==0.11.0
progress==1.5
pyparsing==2.4.7
requests==2.26.0
certifi==2021.05.30
chardet==4.0.0
idna==3.2
urllib3==1.26.6
resolvelib==0.7.1
setuptools==44.0.0 (Unable to locate actual module version, using vendor.txt specified version)
six==1.16.0
tenacity==8.0.1 (Unable to locate actual module version, using vendor.txt specified version)
tomli==1.0.3
webencodings==0.5.1 (Unable to locate actual module version, using vendor.txt specified version)
Compatible tags: 369
cp39-cp39-manylinux_2_17_x86_64
cp39-cp39-manylinux2014_x86_64
cp39-cp39-manylinux_2_16_x86_64
cp39-cp39-manylinux_2_15_x86_64
cp39-cp39-manylinux_2_14_x86_64
cp39-cp39-manylinux_2_13_x86_64
...
- 选择离线安装包需要注意的点
- 尽量选择whl文件:
whl包:已编译;
tar包:源文件,已打包,没有编译;
tar.gz包:源文件,压缩并打包,没有编译。 - 版本参考上述命令(一般都是用cp,39代表3.9版本的python;manylinux代表支持多数Linux)
- 注意查看该安装包版本支持的python版本是多少