Ubuntu源码编译安装Python3.8 3.9
一、下载源码
3.8:https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
3.9:https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
二、编译参数
--prefix:指定安装目录
使用–prefix参数可以指定Python的安装目录,例如:
./configure --prefix=/usr/local/python38
这将把Python 3.8安装在/usr/local/python38目录下。
–enable-optimizations:启用优化
使用–enable-optimizations参数可以启用优化,例如:
./configure --prefix=/usr/local/python38 --enable-optimizations
这将在编译Python时启用优化选项,提高Python的运行效率。
–enable-shared:启用共享库
使用–enable-shared参数可以启用共享库,例如:
./configure --prefix=/usr/local/python38 --enable-optimizations --enable-shared
这将在编译Python时生成共享库,方便其他程序共享Python的库文件。
–with-openssl:指定OpenSSL库
如果需要使用SSL加密功能,可以使用–with-openssl参数指定OpenSSL库的路径,例如:
./configure --prefix=/usr/local/python38 --enable-optimizations \
--enable-shared --with-openssl=/usr/local/openssl
这将在编译Python时链接指定的OpenSSL库,以支持SSL加密功能。
三、编译
1.依赖安装
sudo apt-get install zlib1g-dev
2.配置
./configure --prefix=/usr/local/python38 --enable-optimizations \
--enable-shared --with-openssl=/usr/local/openssl
3.构建
make
4.安装
sudo make install
或
sudo make altinstall
使用标准的 make install,它将覆盖默认的系统 python3 二进制文件
四、创建软链接
1.备份原来 python3 链接
sudo mv /usr/bin/python3{,.bak}
2.创建 bin 文件软连接
sudo ln -s /usr/local/python38/bin/python3.8 /usr/bin/python3
让 python3 命令可以在终端任何文件夹使用
3.创建 so 库软链接
sudo ln -s /usr/local/python38/lib/libpython3.8.so /usr/lib/libpython3.8.so.1.0
sudo ln -s /usr/local/python38/lib/libpython3.8.so /usr/lib32/libpython3.8.so.1.0
五、修改 pip 源
更改pip源,不论pip还是pip3都是再用户目录下创建pip.conf文件:
mkdir ~/.pip
vim ~/.pip/pip.conf
pip.conf写入:
[global]
timeout = 6000
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = pypi.tuna.tsinghua.edu.cn
六、查看版本
python3 -V
或
python3 --version

七、错误记录
1.错误:https://qastack.cn/unix/291737/zipimport-zipimporterror-cant-decompress-data-zlib-not-available
zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1186: recipe for target 'install' failed
make: *** [install] Error 1
解决方法:
sudo apt-get install zlib1g-dev
2.错误:https://blog.csdn.net/weixin_43270713/article/details/115893600
python3: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory
解决方法:按上面第四步创建软链接
3.错误:
python INFO: Can't locate Tcl/Tk libs and/or headers
sudo apt-get install tcl-dev tk-dev
参考:
https://blog.sacus.top/archives/1223 (编译参数)
https://blog.csdn.net/somken/article/details/128775179 (推荐 make altinstall )
https://blog.csdn.net/xujianjun229/article/details/118500154