升级或安装Python3.x
安装依赖库
centos
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libdb4-devel libpcap-devel xz-devel libffi-devel
ubunut
可以直接使用apt安装
源码安装可能需要
sudo apt-get install libffi-devel
下载Python源码
https://www.python.org/downloads/source/
或者
https://www.python.org/ftp/python/
找到你需要的版本
使用wget下载
例如:3.7.4
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4rc2.tgz
解压
tar zxvf Python-3.7.4rc2.tgz
编译
进入目录
cd Python-3.7.4
里面一般有一个README.rst文件,也介绍了安装方式
执行配置(configure shell脚本)生成Makefile(构建文件)
./configure --prefix=/usr/local/python37 --enable-optimizations --with-ssl
如果提示没有c的环境,请安装
sudo apt-get install gcc
构建和安装
不是root用户加上sudo,升级的话建议直接切换root
make && make install
配置PATH环境变量
vim /etc/profile不是root用户加sudo
加入export PATH=$PATH:/usr/local/python37/bin
激活source /etc/profile
注册软连接(不是必须的)
ln -s /usr/local/python37/bin/python3 /usr/bin/python3
测试
# 注册了软连接
python3 --version
# 没有注册软连接的话
pyhton3.x.x --version
对于pyhton3 -m venv venv
出现Error: Command '['/home/tj001/env/ls_env/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
这是在虚拟机上遇到的情况
不知是不是pip版本过高导致的
创建时加上--without-pip就不装pip
示例python3 -m venv venv --without-pip
激活环境source venv/bin/activate
安装pip
curl https://bootstrap.pypa.io/get-pip.py | python
完成