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检查URL是否正常访问的小技巧
Feb 25 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
Jul 27 Python
python Flask实现restful api service
Dec 04 Python
python selenium UI自动化解决验证码的4种方法
Jan 05 Python
详解python中asyncio模块
Mar 03 Python
详解Python中where()函数的用法
Mar 27 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
python 公共方法汇总解析
Sep 16 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
Django返回HTML文件的实现方法
Sep 17 Python
python实现批量移动文件
Apr 05 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
Python创建日历实例
2014/08/21 Python
python获取mp3文件信息的方法
2015/06/15 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
售后服务承诺书
2014/03/26 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书