Ubuntu源码编译安装Python3.8 3.9

悟透 / 2023-07-04 / 原文

一、下载源码

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

image

七、错误记录

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