自己安装编译python不同的版本
如何自己编译python然后创建指定版本的虚拟环境?
有价值文章:https://blog.csdn.net/h0300/article/details/126702035(Linux下编译安装python)
参考文章:https://flaggo.github.io/python3-source-code-analysis/preface/unix-linux-build/
参考这篇文章比较详细:https://zhuanlan.zhihu.com/p/72609906
1、下载指定版本的python
到这里下载https://www.python.org/指定版本的python
root@wky6832:~/python3.12# wget -c https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz
2、解压
root@wky6832:~# tar xvf Python-3.12.3.tgz
root@wky6832:~# cd Python-3.12.3/
root@wky6832:~/Python-3.12.3#
3、编译
准备工作
编译 Python 前通常需要在系统上安装以下库:
gcc// 编译工具zlib// 压缩、解压相关库libffi// Python 所以来的用于支持 C 扩展的库openssl// 安全套接字层密码库,Linux 中通常已具备
不同的发行版,安装方式和包名称也不尽相同。
对于 Debian/Ubuntu,执行:
sudo apt install -y zlib1g zlib1g-dev libffi-dev openssl libssl-dev cmake
对于 RedHat/CentOS/Fedora,执行:
yum install -y zlib zlib-devel libffi-devel openssl openssl-devel
对于 macOS,执行:
xcode-select --install开始编译:
进入 Python 源码根目录,执行以下命令:
./configure
make
make install
Python 将会被编译,并安装在默认目录中。若您希望将 Python 安装在特定目录,则需要在一开始修改 configure 命令为:
./configure --prefix=<Python要安装到的目录(绝对路径)>
在指定目录中:
- bin 目录 存放的是可执行文件
- include 目录 存放的是 Python 源码的头文件
- lib 目录 存放的是 Python 标准库
- lib/python3.7/config-3.7m-{platform} 目录 存放的是 libpython3.7m.a,该静态库用于使用 C 语言进行扩展。
{platform}代表平台,比如在 Mac OS 上为 “darwin”,在 Linux 上为 “x86_64-linux-gnu” - share 目录 存放的是帮助等文件
默认情况下,编译的 Python 是静态链接(libpython3.7m.a)。如果希望编译的 Python 是动态链接(libpython3.7m.so),则需要在一开始修改configure 命令为:
./configure --enable-shared如需重新编译,请首先执行:
make clean再执行本节开头处的命令即可。