虚拟环境搭建相关

虚拟环境工具对比

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

  • 系统开发环境: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:(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/

你可能感兴趣的:(虚拟环境搭建相关)