CentOS 7.x 配置Python3环境

公司常用的Linux发行版为CentOS 7.x,环境里默认只有Python2,要使用Python3需要自己安装。

通过yum安装

通过yum安装是非常省心的。而且CentOS 8版本已经包含了Python3,但是这个方式不够灵活,有时候我们会需要其他版本的Python或者要管理多个版本的Python,那么就需要下面提到的源码编译等方法。

通过源码编译

如果要选择特定的版本,那么我们最好从源码来进行编译。

  1. 首先访问官网并选择所需版本的源码下载,放置在/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
    
  2. 有可能你需要安装编译过程中所需的工具

    # 首先更新
    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
    
  3. 开始编译,位置为/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
    
  4. 添加软链接,这样可以在任意路径下运行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
    
  5. 看环境需要,修改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
    
  6. 安装并配置虚拟环境

    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
    
  7. 创建并使用虚拟环境,指定版本为python3

    mkvirtualenv --python=/usr/bin/python3 my_env    # 创建虚拟环境
    workon my_env                                    # 切换到某个虚拟环境
    pip install -r requirements.txt                  # 安装依赖
    deactivate 				         # 退出当前虚拟环境
    rmvirtualenv my_env 	                         # 删除某个虚拟环境
    lsvirtualenv 			                 # 列出所有虚拟环境
    cdvirtualenv 			                 # 进入到虚拟环境所在的目录
    
  8. 删除编译安装(未指定目录)的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即可。

posted @ 2020-09-01 15:05  SDET-Pearls  阅读(186)  评论(0编辑  收藏  举报
欢迎指正,谢绝转载。