在Windows下做嵌入式开发的同学,双系统,虚拟机应该都会用到。
双系统,重启切换系统,不开心吧。
虚拟机,占内存,网络不通(桥连还是共享),不爽吧。
用python的同学,
建立一个虚拟环境
virtualenv,virtualenvwrapper,pip
叠加使用起来,一堆命令,晕吧,记不清吧,傻傻分不清吧。
WSL让Windows与Linux在一起
什么是WSL
WSL: Windows Subsystem for Linux
大白话: Windows里跑个linux系统,两个同时运行,linux系统就相当于Windows下的一个程序
点击查看 WSL安装方法
双系统就是这么简单,哈哈哈哈(必须笑出声)
我的WSL实战
Windows和Ubuntu同时运行
Windows和Ubuntu同时运行
Windows和Ubuntu文件共享
Windows和Ubuntu文件共享
Windows和Ubuntu网络互连
Windows和Ubuntu网络互连
pipenv让python虚拟环境包管理更简单
没有对比就没有伤害
- 新建虚拟环境
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)
- 安装包
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)
- 包管理
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还是有
- 命令补齐 (脑子记不住 Tab来)
- 图形显示包依赖关系 ($ pipenv graph)
- 检查装的包的安全性 ($ pipenv check)
- 自动加载环境变量.env
- 支持开发环境与正式环境区分
- 自动管理 Pipfile 新安装和删除的包
……
pipenv一个干两个(virtualenv,pip)的活
最后说一句 官方推荐
![](https://i-blog.csdnimg.cn/blog_migrate/a30fe9bb7595208719535c41cf3e14b5.jpeg)
我的pinenv实战
命令补全
此处缺少动画
求一个动画制作工具吧(试用几个都不满意)图形显示包依赖
![](https://i-blog.csdnimg.cn/blog_migrate/40fe3e9a0cec7220f5a0c33db75bbc2c.jpeg)
- 更多实战,请点击 官方文档
pipenv管理包的优势
传统包管理的流程
requirements.txt
两种方式
只有包名,不带版本(基本不推荐,每次安装时版本不确定,可能不一样,风险不可知)
包名加版本(需要升级其中一个包时,操作不方便)
- 先 pip install 包名 --upgrade,再 pip freeze > requirements.txt
- 维护多个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的一些思考
虚拟环境建立和包管理,具体应用在哪些场景下呢?
个人认为下面几个很适用
- 多版本python隔离
- 生产环境和测试环境隔离
- 生产环境不同包版本共存和切换
下面的是我的公众号二维码图片,欢迎关注我。
![图注:chafezhou公众号 图注:chafezhou公众号](https://i.imgur.com/Cxn6r9K.jpg)