Ubuntu 18.04编译Python 3.10源码时./configure参数及安装相关问题咨询
Ubuntu 18.04编译安装Python3.10问题解答
1. 各编译参数的适用场景及组合建议
各参数的具体用途和适用场景如下:
--with-pydebug:编译带调试符号的Python解释器,仅适用于Python底层开发、C扩展调试、解释器自身问题排查场景。开启后会额外加入大量调试断言,运行性能大幅降低,普通日常使用完全不需要开启。--enable-optimizations:开启PGO(配置文件引导优化)等性能优化选项,优化后Python运行性能可提升10%~20%,适合日常使用、生产部署场景,只要能接受更长的编译时间就推荐开启。--with-ensurepip=install:编译完成后自动安装对应版本的pip,除非你明确不需要pip,否则都建议开启,避免后续手动安装pip的额外操作。--enable-shared:编译生成Python动态链接库,仅适用于有程序需要链接libpython的场景,比如开发嵌入Python的C/C++程序、安装依赖libpython的第三方工具。开启后安装完成需要手动将库路径加入系统动态库配置更新ldconfig,否则运行时会找不到libpython库,无相关需求不需要开启。--enable-unicode=ucs4:该参数在Python 3.3版本后已完全废弃,当前Python默认使用灵活Unicode编码方案,无需添加该参数,强行添加反而会导致配置报错。
参数组合建议:--with-pydebug和--enable-optimizations不可同时使用,调试模式和性能优化本身互斥,其余参数根据自身需求组合即可,无需强制全部添加。
2. 安装路径与--prefix参数的必要性
如果不手动指定--prefix参数,configure默认的安装前缀为/usr/local,执行make altinstall时,只会将带版本号的二进制文件(如python3.10、pip3.10)安装到/usr/local/bin目录下,库文件安装到/usr/local/lib目录下,不会修改系统默认的python3软链接,和你系统原有/usr目录下的Python3.6、3.8完全隔离,不会产生冲突。
如果你希望将Python3.10完全独立部署在/opt目录下,才需要添加--prefix=/opt/Python3.10参数,安装完成后将/opt/Python3.10/bin加入PATH环境变量即可正常使用。两种方案都可正常运行,根据个人的软件管理习惯选择即可。
3. --enable-optimizations对编译耗时的影响
该参数开启后会执行两次编译流程:第一次编译生成的解释器用于运行全套性能测试用例,收集运行时配置信息,第二次根据收集到的信息做针对性的指令级优化,因此编译耗时会明显增加。
具体耗时和你的CPU性能强相关:普通4核CPU编译,不开该参数耗时约1020分钟,开启后耗时约4060分钟;8核及以上CPU编译,开启后仅比不开多15~20分钟。如果不是急需使用,推荐开启该参数,带来的运行性能提升非常明显。
内容的提问来源于stack exchange,提问作者RTC222
相关产品推荐
相关产品推荐

