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多线程下的变量问题
Apr 28 Python
Python中字典的基本知识初步介绍
May 21 Python
详解python 发送邮件实例代码
Dec 22 Python
Python 多线程实例详解
Mar 25 Python
Python实现注册、登录小程序功能
Sep 21 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
python pandas生成时间列表
Jun 29 Python
简单了解python的内存管理机制
Jul 08 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
python实现学生信息管理系统(精简版)
Nov 27 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判断ip黑名单程序代码实例
2014/02/24 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
jquery的ajax请求全面了解
2013/03/20 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
python通过链接抓取网站详解
2019/11/20 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
快速了解Python开发环境Spyder
2020/06/29 Python
python使用建议技巧分享(三)
2020/08/18 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
介绍一下Make? 为什么使用make
2016/07/31 面试题
通信专业个人自我鉴定
2013/10/21 职场文书
工作疏忽检讨书
2014/01/25 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
咖啡店创业计划书
2014/08/15 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
小学班主任教育随笔
2015/08/15 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js