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中的迭代器、生成器与列表解析用法
Mar 20 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
Python 闭包的使用方法
Sep 07 Python
pandas重新生成索引的方法
Nov 06 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
python中for循环变量作用域及用法详解
Nov 05 Python
python实现while循环打印星星的四种形状
Nov 23 Python
Python作用域与名字空间原理详解
Mar 21 Python
pytorch实现线性回归以及多元回归
Apr 11 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 Python
Python使用openpyxl模块处理Excel文件
Jun 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
header导出Excel应用示例
2014/01/24 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
js闭包实例汇总
2014/11/09 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
JS实现数组去重复值的方法示例
2017/02/18 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
使用Python写一个小游戏
2018/04/02 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python实现按关键字筛选日志文件
2019/12/24 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
毕业实习指导教师评语
2014/12/31 职场文书