Pipenv一键搭建python虚拟环境的方法


Posted in Python onMay 22, 2018

由于python2和python3在部分语法上不兼容, 导致有人打趣道:"Python2和Python3是两门语言"

对于初学者而言, 如果同时安装了python2和python3, 那运行python程序就可能会遇到2和3混用的尴尬

为解决python不同版本混用的尴尬,避免污染系统python的依赖包环境, 我们需要创建虚拟环境, 将python2和python3隔离使用

pipenv的优势:

以前我们搭建虚拟环境需要学习使用virtualenv和virtualenvwrapper,在虚拟环境内管理软件依赖包需要学习使用pip, 而有了pipenv, 前面几个就可以不用学了...

以前我们需要将虚拟环境依赖包的导出为 requirements.txt , 一旦依赖包变动,就要重新导出,而pipenv会自动帮我们生成 PipfilePipfile.lock , Pipfile会随着项目,当我们安装时只需在 PipfilePipfile.lock 所在的目录下运行 pipenv install

安装pipenv

方法一: ubuntu用apt安装

sudo apt install software-properties-common python-software-properties
sudo add-apt-repository ppa:pypa/ppa
sudo apt update
sudo apt install pipenv

方法二: windows用pip安装

pip install pipenv

方法三: MacOS直接使用brew安装

brew install pipenv

快速创建并进入虚拟环境

前提条件: 系统已安装python2和python3

# 创建python3环境
pipenv --three
# 创建python2环境
pipenv --two
# 在上一步新建环境的目录下,运行此命令才有效
pipenv shell

Pipenv一键搭建python虚拟环境的方法 

小技巧: 如果子级目录的父级目录已经创建过虚拟环境, 则子级目录无法创建虚拟目录(子级目录无法生成Pipfile, 子级默认会使用父级的虚拟环境), 如果确实需要在子级目录创建独立的虚拟环境,可以运行 pipenv --where 获取父级虚拟环境的名字, 根据虚拟环境的前半部分名字, 确定父级目录的位置, 然后删除父级目录下的 Pipfile , Pipfile.lock , 运行 exit 退出父级虚拟环境,然后回到子目录,运行 pipenv --three 创建子目录的虚拟环境即可

在虚拟环境管理依赖包

安装依赖包 yagmail requests

pipenv install yagmail requests

查看已安装软件

pipenv graph

Pipenv一键搭建python虚拟环境的方法

删除依赖包yagmail

pipenv uninstall yagmail

退出虚拟环境

exit

扩展命令(不看也没关系)

查看虚拟环境python解释器所在位置

pipenv --py

查看虚拟环境所在位置

pipenv --venv

使用更底层的命令 pip freeze

pipenv run pip freeze

只在安装开发阶段使用的软件包(和npm类似)

pipenv install pytest --dev

安装Pipfile.lock的所有包(完整移植开发环境)

pipenv sync

小结:

pipenv借鉴了npm管理包的方式, 与virtualenv和virtualenvwrapper相比, pipenv对新书要更友好一些,推荐学习~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python易忽视知识点小结
May 25 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
python将ansible配置转为json格式实例代码
May 15 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
python实现nao机器人手臂动作控制
Apr 29 Python
基于torch.where和布尔索引的速度比较
Jan 02 Python
pandas中ix的使用详细讲解
Mar 09 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
Python实现石头剪刀布游戏
Jan 20 Python
在Django中使用MQTT的方法
May 10 Python
PyTorch线性回归和逻辑回归实战示例
May 22 #Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 #Python
python利用smtplib实现QQ邮箱发送邮件
May 20 #Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 #Python
Python读取本地文件并解析网页元素的方法
May 21 #Python
详解Python中的四种队列
May 21 #Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 #Python
You might like
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
onpropertypchange
2006/07/01 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
python实现查找两个字符串中相同字符并输出的方法
2015/07/11 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
python3代码中实现加法重载的实例
2020/12/03 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
个人对照检查材料思想汇报
2014/09/26 职场文书
表扬信格式模板
2015/05/05 职场文书
人工作失职检讨书
2015/05/05 职场文书
开票证明
2015/06/23 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
导游词之清晏园
2019/11/22 职场文书