Python3 sys.exec_prefix 属性解析

译者:anxin
日期:2018-06-30

Python3 sys.exec_prefix 变量就是我们在 Python 3 中常提到的 exec_prefix 变量,它用来指定 Python3 平台相关性文件的安装位置(请不要误解为可执行文件的安装位置,可执行文件的安装位置的变量为 sys.executable)。默认情况下,它的值是 /usr/local;即:使用源码文件安装,不修改默认选项时,安装完成后 exec_prefix 的值是 /usr/local,也就是 Python3 平台相关性文件安装在了 /usr/local 文件夹中。在 Linux 系统下的 Deb 或者 Rpm 包中一般都把 prefix 的值修改为了 /usr,即:Python3 平台相关性安装在了 /usr 文件夹中。

关于 Python3 平台无关性 prefix 变量请查看:Python3 sys.prefix 变量解析

在很多时候,exec_prefix 和 prefix 的值是相同的,即:Python3 的平台无关性文件和平台相关性文件安装在了同一目录下。

Python3 配置 exec_prefix

Python3 exec_prefix 的值在安装 Python3 时,可以在构建配置文件 ./configure 时使用参数 --exec-prefix 指定,安装完成后不能再使用 --exec-prefix 参数配置 exec_prefix 变量。

特殊情况:安装完 Python3 后,在使用 Python3 时,在激活 Python 3 的虚拟环境 运行 site.py 脚本时,exec_prefix 的值会被修改为 Python3 虚拟环境的目录,但是:Python3 base_exec_prefix 变量会仍然指向 Python3 的平台相关性文件目录,即 exec_prefix 的初始值。这样的好处是,在激活虚拟环境后,既能够访问虚拟环境中的文件,也能访问 Python3 安装后的系统文件,同时在不用 Python3 虚拟环境时,也方便对 exec_prefix 值的还原。

在 Linux 系统下的 Deb 或者 Rpm 包中都在配置文件 configure 中把 exec_prefix 的值修改为了 /usr

Python3 文件位置说明

Python3 所有配置文件的安装位置为:exec_prefix/lib/pythonX.Y/config(X.Y 为 Python3 的版本,如:3.6)。

Python3 共享库模块(Shared library modules)的安装位置为:exec_prefix/lib/pythonX.Y/lib-dynload(X.Y 为 Python3 的版本,如:3.6)。

本文链接:/tutorial/python3/python3-sys-exec-prefix

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!