Python从3.6以上开始支持LTO与PGO优化,可以在编译时开启。
基于Unix的系统,Python源码编译时会尝试使用可用的系统库。只有相关系统头文件可用时,才会构建可选组件,如果编译时头文件不可用,编译可以完成,但运行程序时如果调用到该组件,则会报错。
sudo dnf install gcc gcc-c++ gdb lzma glibc-devel libstdc++-devel openssl-devel \ readline-devel zlib-devel libffi-devel bzip2-devel xz-devel \ sqlite sqlite-devel sqlite-libs libuuid-devel gdbm-libs perf \ expat expat-devel mpdecimal python3-pip
sudo apt-get install build-essential gdb lcov pkg-config \ libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev \ libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \ lzma lzma-dev tk-dev uuid-dev zlib1g-dev libmpdec-dev
根据实际需要选择对应版本Python源码下载并解压,源码下载地址为https://www.python.org/downloads/source/ 。
tar -xvf Python-3.8.17.tgz cd Python-3.8.17
在3编译的时候直接指定Python安装目录为该空环境所在目录,即下图中的environment location。安装成功后即可直接使用conda activate env_name激活环境。当前编译完成的bin目录下有python3和pip3可以直接使用,进入该python环境的bin目录执行ln -s python3 python和ln -s pip3 pip命令,创建软链接,即可在当前conda环境使用python/pip。
参考依赖安装,确认是否依赖安装完全。