Python版本管理:pyenv和pyenv-virtualenv(MAC、Linux)、virtualenv和virtualenvwrapper(windows)

来源:互联网 发布:济宁淘宝店卖什么的多 编辑:程序博客网 时间:2024/05/22 06:36

Python版本管理:pyenv和pyenv-virtualenv(MAC、Linux)、virtualenv和virtualenvwrapper(windows)

Python版本管理:pyenv和pyenv-virtualenv
Scrapy爬虫入门教程一 安装和基本使用
Scrapy爬虫入门教程二 官方提供Demo
Scrapy爬虫入门教程三 命令行工具介绍和示例
Scrapy爬虫入门教程四 Spider(爬虫)
Scrapy爬虫入门教程五 Selectors(选择器)
Scrapy爬虫入门教程六 Items(项目)
Scrapy爬虫入门教程七 Item Loaders(项目加载器)
Scrapy爬虫入门教程八 交互式 shell 方便调试
Scrapy爬虫入门教程九 Item Pipeline(项目管道)
Scrapy爬虫入门教程十 Feed exports(导出文件)
Scrapy爬虫入门教程十一 Request和Response(请求和响应)
Scrapy爬虫入门教程十二 Link Extractors(链接提取器)

  • 更新日志:
    • 2017年07月16日 更新:重装 mac 安装 pyenv 遇到问题,安装作者推荐的环境。
    • 2017年03月24日 更新:windows python多版本教程

  • Python版本管理pyenv和pyenv-virtualenvMACLinuxvirtualenv和virtualenvwrapperwindows
  • MACLinux 教程推荐
    • 简介
      • pyenv不支持Windows原因滑动到最后
      • virtualenv和pyenv-virtualenv
    • 如何安装pyenv
      • 强烈建议安装
    • pyenv的使用
      • 高级用法
        • pyenv local 高级
        • pyenv global 高级
    • 如何安装pyenv-virtualenvpyenv的插件
    • pyenv-virtualenv的使用
    • 前方高能
  • windows 教程
    • 如何切换版本
    • 使用pip安装库
    • 安装virtualenv
      • 安装指令
        • 例如
    • 安装 virtualenvwrapper
      • 安装指令
        • 注意
      • 常用的 virtualenvwrapper 指令

MAC/Linux 教程(推荐)

简介

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

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

pyenv的作者:Yamashita, Yuu

由于Python的版本太多且比较杂,所以每个公司和项目可能采用的不同的版本进行开发,此时就需要多版本进行管理的必要性。

pyenv(不支持Windows,原因滑动到最后)

作用:可以在同一个环境安装多个不同的Python版本,通过指令随时随地的切换不同的Python版本

但是又会出现一个新的问题,一个容器中虽然有不同的python版本,但是不同的项目使用的Python第三方库的版本可能不同,此时需要每个项目都有一个独立的Python才能满足需求。此时就是大名鼎鼎的virtualenv了。

virtualenv和pyenv-virtualenv

作用:可以给某个目录创建独立的Python版本。

virtualenv项目,可以实现以上功能,但是牛逼的是pyenv也集成了这个插件,可以通过pyenv直接管理virtualenv

废话不多说,也不讲解实现的原理了,一个字就是:

如何安装pyenv

懒人使用:自动安装脚本:
https://github.com/yyuu/pyenv-installer

Linux 和 OSX 都通用的方式:

  • 第一步:下载pyenv 的代码到~/.pyenv目录下

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


  • 第二步:添加环境变量

    OSX 一般会用bash终端和zsh终端,如何查询自己用了哪个终端,在终端中使用:echo $SHELL 指令。

    echo $SHELL/bin/zsh

    Zsh注意:
    把下面指令的~/.bash_profile修改为~/.zshrc或者~/.zshenv,建议使用zshrc(zsh默认启动会执行该脚本)。

    Ubuntu和Fedora注意:
    把下面指令的~/.bash_profile修改为~/.bashrc

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


  • 第三步:启动shell 的时候,使初始化pyenv。

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

    Zsh注意:修改您的~/.zshenv或者~/.zshrc,而不是~/.bash_profile
    Ubuntu和Fedora注意:修改您的~/.bashrc文件而不是~/.bash_profile


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

    exec $SHELL


强烈建议安装:

如果不想使用中出现莫名其妙的问题,作者要求安装的环境:

pyenv将尽力下载和编译所需的Python版本,但由于未满足的系统依赖关系,编译失败,或者编译成功,但新的Python版本在运行时显示出奇怪的错误。以下说明是我们针对正确构建环境的建议。

  • Mac OS X:
    需要安装Xcode Command Line Tools和Homebrew
    Xcode Command Line Tools安装指令:

    xcode-select --install

    Homebrew安装指令:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    以下是可选安装:

    brew install openssl readline xz

    其它系统环境的问题,在https://github.com/pyenv/pyenv/wiki查找即可。



pyenv的使用

此时准备工作已经完成,我们可以使用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 --listAvailable 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

    如果遇到问题:
    例如:zipimport.ZipImportError: can't decompress data; zlib not available,请回到上面安装建议的环境。

  • 卸载特定的Python版本。

    pyenv uninstall
  • 显示当前活动的Python版本

    pyenv version2.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.3pyenv 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 --versionPython 2.7.6python2.7 --versionPython 2.7.6python3.3 --versionPython 3.3.3

或者,如果你喜欢3.3.3超过2.7.6,

pyenv local 3.3.3 2.7.6pyenv 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)  venv27python --versionPython 3.3.3python2.7 --versionPython 2.7.6python3.3 --versionPython 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.3pyenv versions  system* 2.7.6 (set by /Users/yyuu/.pyenv/version)* 3.3.3 (set by /Users/yyuu/.pyenv/version)python --versionPython 2.7.6python2.7 --versionPython 2.7.6python3.3 --versionPython 3.3.3

或者,如果你喜欢3.3.3超过2.7.6,

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

如何安装pyenv-virtualenv(pyenv的插件)

重要说明: 如果将pyenv安装到非标准目录中,请确保将此repo克隆到您安装到的任何位置的“plugins”目录中,默认使用(~/.pyenv)。

Linux 和 OSX 都通用的方式:

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
  • 第一步:

  • 第二步:virtualenvs的自动激活,就是当你进入到你自己设置过的Python版本的目录下,自动切换到virtualenvs的模式,此时你的相关命令只在当前virtualenvs下有效果。

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

Zsh注意:修改您的~/.zshenv或者~/.zshrc,而不是~/.bash_profile
Ubuntu和Fedora注意:修改您的~/.bashrc文件而不是~/.bash_profile

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

    exec $SHELL

pyenv-virtualenv的使用

要为使用pyenv的Python版本创建virtualenv,请运行 pyenv virtualenv,指定所需的Python版本和virtualenv目录的名称。

  • 从当前版本创建virtualenv
pyenv virtualenv venv27

如果只有一个参数pyenv virtualenv,virtualenv将使用给定的名称创建,基于当前的pyenv Python版本。

  • 制定版本创建virtualenv
pyenv virtualenv 2.7.13 venv27
  • 列出现有virtualenvs

pyenv virtualenvs显示现有virtualenv和conda环境的列表。

pyenv shell venv34pyenv 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有两个条目,较短的一个只是一个符号链接。

  • 激活virtualenv

如果eval "$(pyenv virtualenv-init -)"在shell中配置,pyenv-virtualenv将在进入/离开包含.python-version列出有效虚拟环境的文件的目录时自动激活/停用virtualenvs。
看图效果:

python-version文件表示本地Python版本,可以使用pyenv local命令创建和删除。

您还可以手动激活和停用pyenv virtualenv:

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

前方高能:

说道Windows平台了,悲剧的是大神比较吊,说他不用Windows,兼容Windows浪费大神时间,哈哈。

花了一下午整理和写博客,不要吝啬你的赞、评论和 打赏 ��。



windows 教程

因为大部分小伙伴使用的是 windows 电脑,所以我又回到我的神舟笔记本,实验后更新该博客。

这是我安装的两个 python 版本,一个是2.7的一个是3.5.2的,因为是以前学习安装的,没有安装目前最新的3.6.0,但是多版本管理是一样的。

如何切换版本

如何在 python2python3 中自如的切换版本呢?
其实很简单,使用参数制定即可。

因为 windows 下的 shell 很难用,所以我们用 cmd 命令行

使用 py -2 制定 python2 的环境,使用 py -3 制定 python3 的环境。

使用pip安装库

安装到Python 2 时,就使用 pip2 install [name],例如:pip2 install virtualenv

安装到Python 3 时,就使用 pip3 install [name],例如:pip3 install virtualenv

安装virtualenv

VirtualEnv可以方便的创建独立虚拟的Python环境,然后在每个环境中安装独立的需要的软件包(配合 pip 使用),这一系列的环境是相互隔离的。
多个项目部署在一台机器上的时候,很实用。

安装指令:

因为 python3 性能比较高,以下我都以 python3 作为优先演示

安装到Python 3 时,pip3 install virtualenv

安装到Python 2 时,pip2 install virtualenv

Pip2 安装使用的是 Pip3 刚刚下载的缓存安装的,所以没有下载安装,而是直接安装了。

黄色的警告还提示,目前最新的pip9.0.1,建议升级,使用命令:python -m pip install --upgrade pip,但是我们指定 Python2pip,需要使用指令: py -2 -m pip install --upgrade pip

我们查看下,我们的virtualenv是否安装成了

此时我们就可以使用了,但是这样创建好虚拟 python 空间,还要手动激活,特别反人类的操作,所以我们还要安装virtualenvwrapper,更好的使用。

例如:

  1. 先创建虚拟空间

    指令:
    virtualenv -p C:\dev\Python35-32\python.exe venv35

    上面的C:\dev\Python35-32\python.exe是我的 python 安装目录,大家对应自己的目录即可。

    命令解释:
    virtualenv -p [制定 python 的版本路径] [python 虚拟空间的名称]

    python 虚拟空间的名称:随便取,我习惯加上 python 的版本或者项目缩写

  2. 再激活

确实很麻烦,我们继续安装virtualenvwrapper,提高使用效率。



安装 virtualenvwrapper

安装指令:

因为 python3 性能比较高,以下我都以 python3 作为优先演示

安装到Python 3 时,pip3 install virtualenvwrapper-win

安装到Python 2 时,pip2 install virtualenvwrapper-win

因为我的 python3 是后安装的,所以默认是python 是3.5的,所以不指定参数是创建 python3 的,如下:

大家可以看到,我们创建成功后,就自动激活虚拟空间了,我们想要指定对应 python 版本进行创建 python 虚拟环境,如下:

windows 上我安装的 python2 和 python3 的位置是:

C:\dev\Python27\python.exeC:\dev\Python35-32\python.exe

大家可自行找自己的安装位置,然后根据我的配置改成自己的路径即可。

默认创建的虚拟环境位于C:\Users\username\envs,可以通过环境变量 WORKON_HOME 来定制。username是你的计算机用户名。
通过计算机–>属性–>高级系统设置–>环境变量–>在系统变量中新建“变量名”:WORKON_HOME,变量值:“你自定义的路径”。
-w400

注意:

此时我们的配置结束了,我们项目中,开发或者部署的时候,进入项目目录下,然后激活虚拟模式,就可以在当前虚拟的 python 环境下做任何事情。

常用的 virtualenvwrapper 指令:

  • mkvirtualenv [指定的 python 路径] [虚拟空间名称]

    • 例如:
    mkvirtualenv -p C:\dev\Python27\python.exe venv27
  • 激活虚拟环境 / 切换环境

    • 例如:
    workon env1workon env2

    **ps:**mac 或者 linux 的 pyenv 很智能,进入目录自动激活,退出目录自动退出模式。

  • 进入虚拟环境目录
    进入当前环境的目录。

    cdvirtualenv
  • 列出已有环境

    workon
  • 退出环境

    deactivate
  • 删除环境

    rmvirtualenv
  • 复制虚拟环境:

    cpvirtualenv env1 env3

花了一下午整理和写博客,不要吝啬你的赞、评论 和 打赏 ��。

0 0
原创粉丝点击