CentOS 7 安装pyenv,部署 python 独立隔离环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 安装pyenv,部署 python 独立隔离环境相关的知识,希望对你有一定的参考价值。

安装环境: centos 7

[[email protected]_7 cache]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 

安装pyenv 到本地

[[email protected]_7 cache]# git clone git://github.com/yyuu/pyenv.git   ~/.pyenv

系统要先安装 git :
如果没有,则直接yum 安装: yum  install  -y   git 

为pyenv 提供环境配置并生效

[[email protected]_7 cache]# cat  ~/.bashrc
# .bashrc

# User specific aliases and functions

alias rm=‘rm -i‘
alias cp=‘cp -i‘
alias mv=‘mv -i‘

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

添加最后的三行配置,保存文件,

source  ~/.bashrc  使配置生效

或者 exec  $SHELL -l

安装系统的环境

[[email protected]_7 cache]# yum groupinstall "Development Tools"  -y

[[email protected]_7 cache]# yum install -y python-devel libevent-devel python-pip gcc xz-devel openssl-devel readline-devel sqlite-devel bzip2-devel

列出可以安装的 python 版本

[[email protected]_7 cache]# pyenv install --list

安装 python 3.5.2

因为 pyenv 是先将 python 安装包下载到 ~/.pyenv/cache/  目录,然后校验 md5值,再安装的,所以,如果用 pyenv  install  3.5.2 -v  的命令安装 python 比较慢,则可以将python-3.5.2 下载到 cache/ 目录,再用 pyenv  install 3.5.2  -v 命令安装。

例如:
[[email protected]_7 cache]# wget http://mirrors.sohu.com/python/3.5.2/Python-3.5.2.tar.xz -P ~/.pyenv/cache/
在搜狐的镜像下载 Python-3.5.2.tar.xz 到 cache/ 目录

然后:
[[email protected]_7 cache]# pyenv install 3.5.2 -v

速度会比较快

安装完成后,需要刷新 pyenv

[[email protected]_7 cache]# pyenv rehash

再查看系统中的 python 版本:

[[email protected]_7 cache]# pyenv versions
* system (set by /root/.pyenv/version)
  3.5.2

设置在特定的目录使用特定的 python 版本

pyenv的global子命令用于设定全局的版本,local子命令用于设置当前工作目录的特定python版本,version则用于查看当前正在使用的版本,新建两个目录,分别设置各自使用的版本

例如: 设置在 ~/py35 目录使用 python3.5.2 

[[email protected]_7 py35]# pwd
/root/py35
[[email protected]_7 py35]# pyenv local 3.5.2
[[email protected]_7 py35]# pyenv local
3.5.2

[[email protected]_7 py35]# python -V
Python 3.5.2

切换到其他目录:
[[email protected]_7 ~]# python -V
Python 2.7.5

删除当前目录下的 python 版本

要删除前面的 local 设置,只需要使用 --unset 或者 将目录下的 .python-version 文件删除
[[email protected]_7 py35]# pyenv local --unset
[[email protected]_7 py35]# python  -V
Python 2.7.5
变回系统默认的 2.7.5 版本了

通过删除 .python-version 文件,取消特定目录使用特定 python 版本:
[[email protected]_7 py35]# rm -rf .python-version
[[email protected]_7 py35]# ls
[[email protected]_7 py35]# pyenv local
pyenv: no local version configured for this directory
[[email protected]_7 py35]# python -V
Python 2.7.5

安装 pyenv-virtualenv 插件

pyenv virtualenv 是pyenv的插件,为pyenv设置的python版本提供隔离的虚拟环境,设置虚拟环境后,在这个目录下面安装的第三方库及修改库搜索路径都不会影响其他环境,相当于一个沙盒环境,互相不影响。
安装 pyenv-virtualenv插件

[[email protected]_7 py35]#  git clone git://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
重新载入环境
exec  $SHELL
pyenv-virtualenv会为pyenv引入一些新的命令,例如 virtualenv/virtualenv-delete 用于创建/删除虚拟环境,virtualenvs用于列出所有的虚拟环境,activate /deactivate用于激活和禁用虚拟环境
创建一个虚拟环境
[[email protected]_7 ~]# mkdir venv35
[[email protected]_7 ~]# cd venv35
[[email protected]_7 venv35]# ls
[[email protected]_7 venv35]# pyenv virtualenv 3.5.2 env35

查看可用的版本:
[[email protected]_7 venv35]# pyenv versions
* system (set by /root/.pyenv/version)
  3.5.2
  3.5.2/envs/env35
  env35

在此虚拟环境目录下面安装 ipython,切换到其他设定的版本目录中无法使用,说明是相互隔离的

pyenv-virtualenv 只需要记住三条命令:

pyenv virtualenv 3.5.2 env35     #创建一个 Python 版本为 3.5.2 的环境, 环境叫做 env
pyenv activate env35  #激活 env 这个环境, 此时 Python 版本自动变为 3.3.0, 且是独立环境
pyenv deactivate              #离开已经激活的环境

以上是关于CentOS 7 安装pyenv,部署 python 独立隔离环境的主要内容,如果未能解决你的问题,请参考以下文章

sh 在centos 7上安装python 2.7.10和pyenv

Python学习笔记:CentOS 7.9安装配置pyenvpipipython和jupyter

[TroubleShooting]CentOS8使用pyenv部署多版本python时报 python: command not found

在centos中部署多个python版本

PYENV for RHEL 6

PYENV for RHEL 6