WSL和pipenv用起来


在Windows下做嵌入式开发的同学,双系统,虚拟机应该都会用到。
双系统,重启切换系统,不开心吧。
虚拟机,占内存,网络不通(桥连还是共享),不爽吧。

用python的同学,
建立一个虚拟环境
virtualenv,virtualenvwrapper,pip
叠加使用起来,一堆命令,晕吧,记不清吧,傻傻分不清吧。


WSL让Windows与Linux在一起

什么是WSL

WSL: Windows Subsystem for Linux

大白话: Windows里跑个linux系统,两个同时运行,linux系统就相当于Windows下的一个程序

点击查看 WSL安装方法

双系统就是这么简单,哈哈哈哈(必须笑出声)

我的WSL实战

  1. Windows和Ubuntu同时运行

    WSL和pipenv用起来_第1张图片Windows和Ubuntu同时运行
  2. Windows和Ubuntu文件共享

    WSL和pipenv用起来_第2张图片Windows和Ubuntu文件共享
  3. Windows和Ubuntu网络互连

    WSL和pipenv用起来_第3张图片Windows和Ubuntu网络互连

pipenv让python虚拟环境包管理更简单

没有对比就没有伤害

  1. 新建虚拟环境
  • virtualenv
    三步

    1$ cd your_project_folder
    2$ virtualenv your_project
    3
    4$ virtualenv -p /usr/bin/python2.7 your_project(指定python版本)
    5$ source your_project/bin/activate
    
  • pipenv
    两步

    1$ cd your_project_folder
    2$ pipenv install 
    3
    4$ pipenv install --two(使用python2)
    
  1. 安装包
  • virtualenv
    三步

    1$ source your_project/bin/activate
    2
    3$ pip install requests
    4$ pip install -r requirements.txt
    
  • pipenv
    两步

    1$ pipenv shell
    2$ pipenv install requests
    3$ pipenv install -r requirements.txt
    4  (如果目录下有requirements.txt文件,pipenv install就ok)
    
  1. 包管理
  • virtualenv
    三步

    1$ source your_project/bin/activate
    2
    3$ pip uninstall requests
    4$ pip freeze > requirements.txt
    
  • pipenv
    三步,但更潇洒

    1$ pipenv shell
    2$ pipenv uninstall requests
    3$ pipenv lock -r
    

virtualenv有的,pipenv都有



virtualenv没有的,pipenv还是有


  1. 命令补齐 (脑子记不住 Tab来)
  2. 图形显示包依赖关系 ($ pipenv graph)
  3. 检查装的包的安全性 ($ pipenv check)
  4. 自动加载环境变量.env
  5. 支持开发环境与正式环境区分
  6. 自动管理 Pipfile 新安装和删除的包
    ……

pipenv一个干两个(virtualenv,pip)的活
最后说一句 官方推荐

WSL和pipenv用起来_第4张图片

我的pinenv实战

  1. 命令补全
    此处缺少动画
    求一个动画制作工具吧(试用几个都不满意)

  2. 图形显示包依赖

WSL和pipenv用起来_第5张图片
  1. 更多实战,请点击 官方文档

pipenv管理包的优势

传统包管理的流程
requirements.txt
两种方式

  1. 只有包名,不带版本(基本不推荐,每次安装时版本不确定,可能不一样,风险不可知)

  2. 包名加版本(需要升级其中一个包时,操作不方便)

    1. 先 pip install 包名 --upgrade,再 pip freeze > requirements.txt
    2. 维护多个requirements.txt文件,需要升级的包放到额外的requirements-package-update.txt中,先pip install -r requirements-package-update.txt --upgrade
    1requirements.txt文件内容
    2cffi==1.5.2
    3cryptography==1.2.2
    4enum34==1.1.2
    5Flask==0.10.1
    6requirements-package-update.txt文件内容
    7cffi
    8Flask==0.12.1
    

使用pipenv的一些思考

虚拟环境建立和包管理,具体应用在哪些场景下呢?
个人认为下面几个很适用

  1. 多版本python隔离
  2. 生产环境和测试环境隔离
  3. 生产环境不同包版本共存和切换

下面的是我的公众号二维码图片,欢迎关注我。

图注:chafezhou公众号


你可能感兴趣的:(python)