阿里云服务器将python2升级到python3
最近想学python,因为python3没有向下兼容python2,所以打算把阿里云服务器上的python2升级一下,并记录全过程。
文章参考 CSDN博主「sonwing」的原创文章:https://blog.csdn.net/sonwing/article/details/103693419
- 创建python3的目录
mkdir /usr/local/python3
- 进入创建好的目录
cd /usr/local/python3
- 下载python3.9.4
wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz
- 解压
或者先解压成tar,再解压tar xvJf Python-3.9.4.tar.xz
xz -d Python-3.9.4.tar.xz tar -xvf Python-3.9.4.tar
- 进入解压目录
cd Python-3.9.4
- 配置编译安装目录
./configure --prefix=/usr/local/python3
- 编译安装
可能遇到错误1:zipimport.ZipImportError: can’t decompress data; zlib not availablemake && make install
解决办法如下
可能遇到错误2: ModuleNotFoundError: No module named ‘_ctypes’yum install -y zlib*
解决办法如下
可能遇到错误3: configure: error: no acceptable C compiler found in $PATHyum install libffi-devel -y
因为缺少C编译器,解决办法如下
如果没遇到上面说的那些错误不用进行这一步:进行清理再重新编译yum -y install gcc
make clean #清理 make && make install #编译
- 将旧的python进行备份
mv /usr/bin/python /usr/bin/python2
- 查看现有python的软连接指向的版本
ls -al python
- 建立软链接(linux的软连接存放位置:/usr/bin)
ln -s /usr/local/python3/bin/python3 /usr/bin/python
- 验证是否安装成功
若报错 ln: failed to create symbolic link ‘/usr/bin/python’: File existspython
解决方法:
ln -sf 加一个 f 即可ln -sf /usr/local/python3/bin/python3 /usr/bin/python
- 将pip进行软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip -f
- 升级成功后,使用 yum 报错
File “/usr/bin/yum”, line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
解决办法:编辑 /usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 将第一行 #!/usr/local/python 修改为 #!/usr/bin/python2.7vi /usr/bin/yum vi /usr/libexec/urlgrabber-ext-down