公司常用的Linux发行版为CentOS 7.x,环境里默认只有Python2,要使用Python3需要自己安装。
通过yum安装
通过yum安装是非常省心的。而且CentOS 8版本已经包含了Python3,但是这个方式不够灵活,有时候我们会需要其他版本的Python或者要管理多个版本的Python,那么就需要下面提到的源码编译等方法。
通过源码编译
如果要选择特定的版本,那么我们最好从源码来进行编译。
-
首先访问官网并选择所需版本的源码下载,放置在/opt目录下。
cd /opt wget --no-check-certificate https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz tar xzvf Python-3.7.2.tgz
-
有可能你需要安装编译过程中所需的工具
# 首先更新 yum update # 一般就安装下面的依赖就行 yum install gcc openssl-devel bzip2-devel libffi-devel -y # 还有一种一股脑全装上的 yum groupinstall -y 'Development Tools' yum install libffi-devel openssl-devel bzip2-devel expat-devel gdbm-devel sqlite-devel zlib-devel ncurses-devel readline-devel tk-devel # 如果libffi-devel没装,那么会提示 ModuleNotFoundError: No module named '_ctypes' # 如果openssl-devel没装,虽然编译会成功,但是无法安装新包。编译时会提示 Could not build the ssl module! # ssl这里容易有坑,遇到了网上再搜解决办法吧。 # Python3.7编译安装ssl模块需要安装openssl或libressl(二选一)。 # RH系(CentOS)中的ssl开发库是openssl,Debian系(Ubuntu)中的是libssl-devel。版本要求openssl >= 1.0.2 而 libressl >= 2.6.4
-
开始编译,位置为/usr/local/python3.7。如果运行 ./configure 时不带 --prefix=/my/path,那么会安装文件到/usr/local/bin/以及/usr/local/lib两个目录
cd Python-3.7.2/ ./configure --prefix=/usr/local/python3.7 --enable-optimizations make && make install make clean && make distclean
-
添加软链接,这样可以在任意路径下运行python3或python3.7来调用
注意:
(CentOS7)如果把/usr/bin/python 符号链接改为指向 /usr/bin/python3,会导致yum无法使用。 因为因为yum默认使用的python2,可以修改两个文件,/usr/libexec/urlgrabber-ext-down和/usr/bin/yum,开头的一行#!/usr/bin/pyhon 为 #!/usr/bin/python2 让yum正常使用。ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3 ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3.7
-
看环境需要,修改pip源
pip install pip -U # 如果下面的config命令失败,可能是因为pip版本太低不支持config,那么需要先升级pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config list
-
安装并配置虚拟环境
pip3 install virtualenv pip3 install virtualenvwrapper vim ~/.bashrc # 指定virtualenvwrapper执行的python版本 VIRTUALENVWRAPPER_PYTHON=/usr/local/python3.7/bin/python3.7 # 指定虚拟环境存放目录,.virtualenvs目录名可自拟 export WORKON_HOME=$HOME/.virtualenvs # virtualenvwrapper.sh所在目录 source /usr/local/bin/virtualenvwrapper.sh source ~/.bashrc
-
创建并使用虚拟环境,指定版本为python3
mkvirtualenv --python=/usr/bin/python3 my_env # 创建虚拟环境 workon my_env # 切换到某个虚拟环境 pip install -r requirements.txt # 安装依赖 deactivate # 退出当前虚拟环境 rmvirtualenv my_env # 删除某个虚拟环境 lsvirtualenv # 列出所有虚拟环境 cdvirtualenv # 进入到虚拟环境所在的目录
-
删除编译安装(未指定目录)的Python3。如果需要删除,那么参考以下方法。
#通过安装日志可知Python3被安装在如下目录了 /usr/local/lib/python3.6 /usr/local/bin/2to3-3.6 to /usr/local/bin/pyvenv-3.6 /usr/local/bin/pydoc3.6 /usr/local/bin/idle3.6 # 删除文件 rm -rf /usr/local/lib/python3.6 rm -rf /usr/local/bin/2to3-3.6 to rm -rf /usr/local/bin/pyvenv-3.6 rm -rf /usr/local/bin/pydoc3.6 rm -rf /usr/local/bin/idle3.6
通过conda安装
参考官方文档。
卸载方法
删除安装目录,例如 /opt/Anaconda3
清除配置,一般在 ~/.bashrc最后几行,删除然后source ~/.bashrc即可。