在WSL版本Ubuntu24.04.1LTS子系统替换Python3.12到3.8

因为想开发开源鸿蒙,但是发现他编译工具链需要用到的Python版本比较低,要3.8的版本,24.04的Ubuntu系统预装的肯定不会那么低嘛,而且现在都不太流行用虚拟机了,我本人也比较喜欢子系统,哎~没办法,为了能够增加成功率,豁出去了 删除原本的3.12 这里可以省略一万字了,不删都可以的,懂的都

因为想开发开源鸿蒙,但是发现他编译工具链需要用到的Python版本比较低,要3.8的版本,24.04的Ubuntu系统预装的肯定不会那么低嘛,而且现在都不太流行用虚拟机了,我本人也比较喜欢子系统,哎~没办法,为了能够增加成功率,豁出去了

删除原本的3.12

这里可以省略一万字了,不删都可以的,懂的都懂,安装完3.8版本,把链接全部替换掉原来的不就行了,但是为了稳妥,还是删除了

rm -rf /usr/local/bin/py*
rm -rf /usr/local/share/py*
#...自己找到相关文件,用rm删除就好了嘛

下载3.8源码并编译安装

下载:

cd /usr/local/
wget https://www.python.org/ftp/python/3.8.20/Python-3.8.20.tgz
tar zxvf Python-3.8.20.tgz
cd Python-3.8.20
#先检查一下环境能不能编译
./configure

安装前准备:

(这里要注意了,Python3.8用到的SSL库必须是全功能的,子系统安装的SSL包一个是比较新,第二个是比较精简,所以这里教大家自己编译一个SSL库)

cd /usr/local/openssl
wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz
tar zxvf openssl-1.1.1u.tar.gz
cd openssl-1.1.1u
./config --prefix=/usr/local/openssl/openssl1.1.1
make
make install

配置一下源码(这一步很重要!跳过这一步的话,编译出来还是没有SSL)

$ vim Modules/Setup
# 编辑后的内容如下:
SSL=/usr/local/openssl/openssl1.1.1
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

编译Python3.8

cd /usr/local/Python-3.8.20
./configure --with-openssl=/usr/local/openssl/openssl1.1.1 --enable-optimizations
make
make install

验证一下

python
>>> import ssl
#如果没有弹出任何错误提示,那就是OK的!

LICENSED UNDER CC BY-NC-SA 4.0
Comment