首页 » Ubuntu » Ubuntu16.04下 Python / Anaconda 多版本共存之pyenv 安装教程

Ubuntu16.04下 Python / Anaconda 多版本共存之pyenv 安装教程

原文 http://blog.csdn.net/ksws0292756/article/details/79180604

2018-01-28 02:01:26阅读(327)

1.简介

pyenv
https://github.com/yyuu/pyenv

pyenv-virtualenv
https://github.com/yyuu/pyenv-virtualenv

pyenv的作者:Yamashita, Yuu
<a href=Ubuntu16.04下 Python / Anaconda版本共存之pyenv 安装教程" src="http://img.blog.csdn.net/20180127141632650?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva3N3czAyOTI3NTY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="">

pyenv是一种管理Python版本的工具,它支持在多个Python版本间自由切换,并且还具有virtualenv插件,可以简单快速的建立python的虚拟环境。

virtualenv和pyenv-virtualenv
pyenv-virtualenv是Yamashita, Yuu写的一个pyenv插件,利用他你可以直接通过pyenv直接管理virtualenv。

2.安装pyenv

第零步、根据作者建议,先安装相关依赖库

如果不想在使用中出现莫名其妙的问题,我们最好先安装作者要求的环境,安装方式很简单,只需要运行下面的指令即可:

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev

第一步、在terminal中,运行下面的指令,下载pyenv 的代码到~/.pyenv目录下

  git clone https://github.com/yyuu/pyenv.git ~/.pyenv

第二步、添加环境变量
先查看自身使用的是哪种shell,运行下面指令即可查看

echo $SHELL

如果是bash,则会返回

/bin/bash

如果是zsh,则会返回

/bin/zsh

根据自身终端类型,在相应文件中添加环境变量(其他类型的shell同理)
bash:利用sudo gedit ~/.bashrc打开文件,在文件末尾添加:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

zsh:利用sudo gedit ~/.zshrc打开文件,在文件末尾添加

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

上面的添加过程也可以直接在终端中运行下面的命令完成:

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

(zsh只需将最后的bashrc改成zshrc即可)

第三步、使得在启动shell 的时候,初始化pyenv。
在命令行中运行如下指令,添加环境变量(与上面同理)

  echo 'eval "$(pyenv init -)"' >> ~/.bashrc

(zsh用户注意要将bashrc改成zshrc)

第四步、重启shell,使改动生效

    exec $SHELL
3.pyenv的使用

详细的pyenv 指令集可以参见下面的链接:
https://github.com/yyuu/pyenv/blob/master/COMMANDS.md

以下是常用指令集:

pyenv commands pyenv local pyenv global pyenv shell pyenv install pyenv uninstall pyenv rehash pyenv version pyenv versions pyenv which pyenv whence

下面简单介绍各个指令的用法:
pyenv install --list:查询所有可以安装的版本:

pyenv install --list
Available versions:
  2.1.3
  ...
  2.7
  2.7.1
  2.7.2
  ...
  3.2-dev
  3.2
  ...
  3.5.0
  3.5-dev
  ...
  3.6.0
  3.6-dev
  3.7-dev
  ...

安装所需的版本:

pyenv install 2.7.6
pyenv install 2.6.8

卸载特定的Python版本。

pyenv uninstall

显示当前活动的Python版本

pyenv version
2.7.6 (set by /home/yyuu/.pyenv/version)

Python的全局设置,整个系统生效

pyenv global 2.7.6

Python的局部设置,当前目录生效

pyenv local 2.7.6

取消设置

pyenv local --unset

高级用法

可以一次将多个版本指定为本地Python。

假设你有两个版本的2.7.6和3.3.3。如果你喜欢2.7.6胜过3.3.3,

pyenv local (高级)
pyenv local 2.7.6 3.3.3
pyenv versions
  system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
python --version
Python 2.7.6
python2.7 --version
Python 2.7.6
python3.3 --version
Python 3.3.3

如果你喜欢3.3.3胜过2.7.6,

pyenv local 3.3.3 2.7.6
pyenv versions
  system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
  venv27
python --version
Python 3.3.3
python2.7 --version
Python 2.7.6
python3.3 --version
Python 3.3.3
pyenv global (高级)

你可以同时将多个版本指定为全局Python。
假设你有两个版本的2.7.6和3.3.3。如果你喜欢2.7.6胜过3.3.3,

pyenv global 2.7.6 3.3.3
pyenv versions
  system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
python --version
Python 2.7.6
python2.7 --version
Python 2.7.6
python3.3 --version
Python 3.3.3

如果你喜欢3.3.3胜过2.7.6,

pyenv global 3.3.3 2.7.6
pyenv versions
  system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
  venv27
python --version
Python 3.3.3
python2.7 --version
Python 2.7.6
python3.3 --version
Python 3.3.3
4.如何安装pyenv-virtualenv(pyenv的插件)

重要说明: 如果你没有将pyenv安装到标准目录(~/.pyenv)中,请确保将此插件克隆到安装到位置的“plugins”目录中。

第一步、运行下面的指令,下载pyenv-virtualenv插件

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

第二步、:virtualenvs的自动激活
这个功能是作者开发的一个十分实用的功能,它可以让你在进入到你自己设置过的Python版本的目录下,自动切换到virtualenvs的模式,此时你的相关命令只在当前virtualenvs下有效果。要启用改功能,运行下面的指令,添加环境变量即可

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

Zsh注意修改的是~/.zshenv或者~/.zshrc,而不是~/.bashrc。

第三步、:重新启动shell,以使路径更改生效。

exec $SHELL
5.使用pyenv-virtualenv

我们可以通过 pyenv virtualenv指令,指定所需的Python版本和virtualenv目录的名称。

从当前环境的python版本创建virtualenv
pyenv virtualenv envtest1
列出现有virtualenvs
pyenv virtualenvs显示现有virtualenv和conda环境的列表。
pyenv shell venv34
pyenv virtualenvs
  miniconda3-3.9.1(从/home/yyuu/.pyenv/versions/miniconda3-3.9.1创建)
  miniconda3-3.9.1 / envs / myenv(从/home/yyuu/.pyenv/versions/miniconda3-3.9.1创建)
  2.7.10 / envs / my-virtual-env-2.7.10(从/home/yyuu/.pyenv/versions/2.7.10创建)
  3.4.3 / envs / venv34(从/home/yyuu/.pyenv/versions/3.4.3创建)
  my-virtual-env-2.7.10(从/home/yyuu/.pyenv/versions/2.7.10创建)
 * venv34(从/home/yyuu/.pyenv/versions/3.4.3创建)
激活virtualenv

如果eval “$(pyenv virtualenv-init -)”在shell中配置,pyenv-virtualenv将在进入/离开包含.python-version列出有效虚拟环境的文件的目录时自动激活/停用virtualenvs。python-version文件表示本地Python版本,可以使用pyenv local命令创建和删除。
也就是说,当我们在某个目录下运行pyenv local test1时,该目录就会创建一个.python-version的隐藏文件,文件内存有虚拟环境test1的名称,当下次我们再进入这个目录时,pyenv就会自动启动虚拟环境,无须人为控制。

如果不想设置自动启动虚拟环境,也可以通过下面的命令手动激活和停用pyenv virtualenv:

pyenv activate virtualenv的名称 
pyenv deactivate
删除现有virtualenv
pyenv uninstall my-virtual-env

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹