美文网首页
虚拟环境搭建相关

虚拟环境搭建相关

作者: 土卡拉 | 来源:发表于2019-04-10 12:45 被阅读0次

    虚拟环境工具对比

    目前接触的开发环境相关:

    • 系统开发环境:Windows、 linux(Ubuntu16.04 lts)、 mac os等
    • 虚拟机:vmware、docker
    • Python环境:python2/3、以及各种框架、包、模块的版本的选择

    为什么需要使用虚拟开发环境?

    1、主要原因:
    为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。
    python2和3存在不小的差异,并且,由于各种原因导致了Python 2和Python 3的长期共存(Python虽然现在比较火,但是也经历了)。在实际工作过程中,我们可能会同时用到Python 2和Python 3,因此,也需要经常在Python 2和Python 3之间进行来回切换。这就需要对python的版本进行管理,除此之外还需要对不同的软件包进行管理。大部分情况下,对于开源的库我们使用最新版本即可。但是,有时候可能需要对相同的Python版本,在不同的项目中使用不同版本的软件包。

    2、简而言之:
    我们在做不同项目(比如后面用的django1.11.4和在最新的2点几)的时候需要不同的项目依赖。

    虚拟环境工具

    pyenv-virtualenv

    • pyenv和virtualenv。前者用于管理不同的Python版本,后者用于管理不同的工作环境。

    • pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。
      使用步骤
      1、pyenv安装
      安装与相对环境变量配置方式:

    • curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash (主目录下会有个.pyenv的隐藏文件夹)

    • 将以下三条语句写入 ~/.bashrc :
      export PATH="/home/zhu/.pyenv/bin:PATH" eval "(pyenv init -)"
      eval "$(pyenv virtualenv-init -)"

    第二种是安装git之后,用git安装,不过配置环境变量时上面语句需要用echo 追加(>>)写入配置文件

    • 配置立刻生效
      source ~/.bashrc

    • 验证
      echo $PATH (第一个路径结尾有个shims就可以了)

    • 更新
      pyenv update (到这安装完成)

    2、基本使用
    使用pyenv安装Python

    • 依赖安装(python安装前提):
      sudo apt-get install libc6-dev gcc
      sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
    • 安装:
      慢方式:pyenv install 3.6.4 -v #-v 以日志模式显示安装过程(国外服务器下载)
      快方式:下载至本地再安装
      cd ~/.pyenv
      sudo mkdir cache(临时文件夹,随便起个名都行)
      wget -c http://mirrors.sohu.com/python/3.6.4/Python-3.6.4.tar.xz -P ~/.pyenv/cache/
      pyenv install 3.6.4 -v
    • 查看支持Python版本 pyenv install --list
    • 列出pyenv中所有可用的python版本 pyenv versions
    • 指定python版本 pyenv global 3.5.4(版本相关依赖随之切换,避免了不同版本在系统中产生干扰)
    • 删除指定版本 pyenv uninstall 3.5.4
    注意:
        - 使用pyenv管理python,必须是用pyenv安装的python才行,系统以前有的,需要重新用pyenv安装
        - 使用pip安装第三方模块时会安装到~/.pyenv/versions/xxx下,不会和系统模块发生冲突;
        - 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。
        - 配置环境变量(写入方式注意与下载方式结合,不然会出诡异的错误) 
    

    virtualenv本身是一个独立的工具,用户可以不使用pyenv单独使用virtualenv。但是,如果使用了pyenv,就需要安装pyenv-virtualenv插件而不是virtualenv软件来使用virtualenv的功能。(https://github.com/yyuu/pyenv-virtualenv

    • 安装virtualenv:pip install virtualenv 然后合适的位置建个项目目录如myproject
    • 进入myproject ,创建项目的虚拟环境:pyenv virtualenv python版本号 虚拟环境名 (python版本必须是安装过的,环境名随便起,只要能记住python版本就好)
    • 进入环境:pyenv activate 环境名
    • 退出环境:pyenv deactivate 环境名

    virtualenv-virtualenvwrapper

    1、安装
    pip install virtualenv
    pip install virtualenvwrapper

    2、查看路径
    type virtualenvwrapper.sh

    3、配置
    vi ~/.bashrc
    # 文件最后添加:
    export WORKON_HOME=~/.virtualenv
    source /usr/local/bin/virtualenvwrapper.sh
    (若在pip下载后,找不到/usr/local/bin/virtualenvwrapper.sh路径的文件,使用 find / -name virtualenvwrapper.sh 寻找该文件路径,原因可能是因为之前安装过pyenv-virtualenv)
    4、创建对应目录
    mkdir ~/.virtualenv

    5、刷新环境
    source ~/.bashrc

    6、创建虚拟环境
    mkvirtualenv axf -p /usr/bin/python3

    7、简单使用

    • 创建虚拟环境 mkvirtualenv [版本] vir_name
    • 进入虚拟环境 workon vir_name
    • 退出环境:deactivate

    pipenv(号称最好用的python虚拟环境和包管理工具)

    为什么说它最好?
    我们常用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题
    github上星星数:
    virtualenv 3K
    pyenv 14.9K
    pipenv 16.5K

    pipenv主要有以下特性:
    
    (1)pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。
    
    (2)过去用virtualenv管理requirements.txt文件可能会有问题,Pipenv使用Pipfile和Pipfile.lock,后者存放将包的依赖关系,查看依赖关系是十分方便。
    
    (3)各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。。
    
    (4)通过加载.env文件简化开发工作流程。
    
    (5)支持Python2 和 Python3,在各个平台的命令都是一样的。
    

    1、安装
    pip/pip3 install pipenv
    2、使用

    • 在合适位置创建项目目录如:根目录下:mkdir project

    • 进入 project:cd project

    • 初始化虚拟环境: pipenv install

    • 简单使用,举个栗子:
      打开pycharm,打开project目录,新建个pachong.py,导入requests库,并不能用
      回到终端,安装requests库 :pipenv install requests,这时pycharm中的requests库就能用了

    • 指明只安装在开发环境中(--dev) pipenv install --dev requests --three

    指明前Pipfile显示
    [[source]]
    name = "pypi"
    url = "https://pypi.org/simple"
    verify_ssl = true

    [dev-packages]

    [packages]
    requests = "*"

    [requires]
    python_version = "3.5"

    指明后Pipfile显示
    [[source]]
    name = "pypi"
    url = "https://pypi.org/simple"
    verify_ssl = true

    [dev-packages]
    requests = "*"

    [packages]
    requests = "*"

    [requires]
    python_version = "3.5"

    • pipenv可以像virtualenv一样用命令生成requirements.txt 依赖文件 (pipenv graph可以查看安装依赖)
      pipenv lock -r --dev > requirements.txt

    • virtualenv中生成依赖文件 pip freeze > reqirement.txt
      pip install -r reqirement.txt

    项目地址:https://github.com/pypa/pipenv
    文档地址:https://docs.pipenv.org/

    相关文章

      网友评论

          本文标题:虚拟环境搭建相关

          本文链接:https://www.haomeiwen.com/subject/vmdniqtx.html