用户工具

站点工具


docs:python:python_update

python3安装

一眨眼好几年过去了,最近要配置个新的 Python 运行环境,发现以前的知识都已经过时了,所以更新一下,使用 SCL 来安装 Python,使用 venv 取代 virtualenv

Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv。

该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持。每一个虚拟环境都有其自己的Python二进制(允许有不同的Python版本创作环境),并且可以拥有自己独立的一套Python包。

需要注意的是,在Python3.3中使用“venv”命令创建的环境不包含“pip”,你需要进行手动安装。在Python3.4中改进了这一个功能缺陷.

#使用Software Collections (SCL) 在CentOS 7 上安装 Python 3
sudo yum install epel-release
sudo yum install centos-release-scl
sudo yum install rh-python36
#设置 python 命令默认的版本为: python 3.6  在centos7.7.1908上能更新的最新版本为python3.6.9
scl enable rh-python36 bash  #通过scl进入新的bash,新bash环境python版本为python36,使用完成后,exit即可,类似一个虚拟环境。
python --version #查看最新Python 版本.
exit #返回

源码编译安装

#安装必要工具 yum-utils ,它的功能是管理repository及扩展包的工具 (主要是针对repository)
$ sudo yum install yum-utils

#使用yum-builddep为Python3构建环境,安装缺失的软件依赖,使用下面的命令会自动处理.
$ sudo yum-builddep python
#完成后下载Python3的源码包(笔者以Python3.5为例),Python源码包目录: https://www.python.org/ftp/python/ ,截至发博当日Python3的最新版本为 3.9.0
$ curl -Ok https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz

#最后一步,编译安装Python3,默认的安装目录是 /usr/local 如果你要改成其他目录可以在编译(make)前使用 configure 命令后面追加参数 “–prefix=/alternative/path” 来完成修改。
$ tar xf Python-3.9.0.tgz
$ cd Python-3.9.0
$ ./configure
$ make
$ sudo make install
#至此你已经在你的CentOS系统中成功安装了python3、pip3、setuptools,查看python版本
$ python3 -V

设置默认版本

#如果你要使用Python3作为python的默认版本,你需要修改一下 bashrc 文件,增加一行alias参数
alias python='/usr/local/bin/python3.9'
#由于CentOS 7建议不要动/etc/bashrc文件,而是把用户自定义的配置放入/etc/profile.d/目录中,具体方法为
vi /etc/profile.d/python.sh
#输入alias参数 alias python=’/usr/local/bin/python3.9’,保存退出
#如果非root用户创建的文件需要注意设置权限
chmod 755 /etc/profile.d/python.sh

#重启会话使配置生效
source /etc/profile.d/python.sh

从EPEL仓库安装

最新的EPEL 7仓库提供了Python3(python 3.4)的安装源,如果你使用CentOS7或更新的版本的系统你也可以按照下面的步骤很轻松的从EPEL仓库安装。

#安装EPEL
$ sudo yum install epel-release

#用yum安装python 3.4:
$ sudo yum install python34

注意:上面的安装方法并未安装pip和setuptools,如果你要安装这两个库可以使用下面的命令:
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo /usr/bin/python3.4 get-pip.py

docs/python/python_update.txt · 最后更改: 2020/09/25 21:49 (modify by Amos)