如何自己编译python然后创建指定版本的虚拟环境?

有价值文章:https://blog.csdn.net/h0300/article/details/126702035Linux下编译安装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

再执行本节开头处的命令即可。

标签: none

添加新评论