工欲善其事必先利其器系列之(二):Centos7下当前最高版本python3.9.2源码编译安装方法

apollo008
日期作者版本备注
2021-03-22dingbinV1.0

本文概要记录Centos7下python3.9.2源码编译安装方法。

  • 操作日期: 2021-03-23.
  • 操作环境:CentOS Linux release 7.5.1804, 16核 20G

具体操作方法如下:

  1. 官网下载当前最新最高版本python release包:Python-3.9.2.tar.xz
  2. 编译安装:
Python-3.9.2.tar.xz

tar xvf Python-3.9.2.tar.xz 

cd Python-3.9.2

#LDFLAGS=-rdynamic很重要,否则后续依赖它的vim启动后会出现报错如下图所示:
export LDFLAGS=-rdynamic
LDFLAGS=-rdynamic  ./configure LDFLAGS=-rdynamic --prefix=/home/dingbin/app/python39 --enable-shared --enable-optimizations 
#注意:--enable-shared 非常重要,因为这个选项会编译出动态python链接库,供其他程序调用,比如编译vim大牛补全插件
YouCompleteMe或Vim高版本时,就依赖动态python链接库。 此时必须要加--enable-shared 这个选项,否则python需要重新编译安装。

make PROFILE_TASK=" -m test.regrtest --pgo -j14 "   -j14

make install

全部过程大约10分钟左右完成。

image-20210323191657746

3.精要配置python

将/home/xx/python39/ 加入~/.bashrc 中PATH环境变量
cd /home/xx/python39/bin

ln -sf pip3 pip
ln -sf easy_install-3.9 easy_install3
ln -sf easy_install-3.9 easy_install
ln -sf python3.9 python

vim ~/.pip/pip.conf
加入如下内容:
[global]
timeout = 10000
index-url=http://pypi.douban.com/simple
extra-index-url=http://mirrors.aliyun.com/pypi/simple/
#extra-index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
#extra-index-url=http://pypi.mirrors.ustc.edu.cn/simple/

[install]
trusted-host=pypi.douban.com
#trusted-host=mirrors.aliyun.com
#trusted-host=pypi.tuna.tsinghua.edu.cn
#trusted-host=pypi.mirrors.ustc.edu.cn

保存退出。

pip install virtualenv virtualenvwrapper
pip --upgrade install pip


vim ~/.bashrc  加入:
export WORKON_HOME=${HOME}/.virtualenvs
export PROJECT_HOME=${HOME}/work/projects/pythonprojects.git
export VIRTUALENVWRAPPER_PYTHON=${PYTHON39_HOME}/bin/python
source ${PYTHON39_HOME}/bin/virtualenvwrapper.s
保存退出。
重新source ~/.bashrc

workon 可以看目前有哪些虚拟python环境,workon xxx 进入某个虚拟python环境
mkvirtualenv -p ~/app/python39/bin/python --copies newvenv1 创建某个虚拟python环境名叫newvenv1
deactivate 退出当前环境
操作示例如下图所示:

image-20210323182632667

阅读 648

A programmer who loves life

125 声望
7 粉丝
0 条评论
你知道吗?

A programmer who loves life

125 声望
7 粉丝
宣传栏