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 07 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
Python简单读取json文件功能示例
Nov 30 Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 Python
分析Python读取文件时的路径问题
Feb 11 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
Python绘图之柱形图绘制详解
Jul 28 Python
Django搭建项目实战与避坑细节详解
Dec 06 Python
python中封包建立过程实例
Feb 18 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
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
asm.js使用示例代码
2013/11/28 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
jquery实现拖动效果
2016/08/10 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
python实现滑雪游戏
2020/02/22 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
多重CSS背景动画实现方法示例
2014/04/04 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
党校自我鉴定范文
2013/10/02 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
人事专员的职责
2014/02/26 职场文书
体育比赛口号
2014/06/09 职场文书
行政求职信
2014/07/04 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
招商银行工作证明
2015/06/17 职场文书
高中运动会前导词
2015/07/20 职场文书