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 字典(Dictionary)操作详解
Mar 11 Python
python多线程方式执行多个bat代码
Jun 07 Python
Python中的sort()方法使用基础教程
Jan 08 Python
Numpy数组的保存与读取方法
Apr 04 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
Python argparse模块应用实例解析
Nov 15 Python
python如何求100以内的素数
May 27 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
python的链表基础知识点
Sep 13 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
如何基于Django实现上下文章跳转
Sep 16 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 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 数组入门教程小结
2009/05/20 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
php组合排序简单实现方法
2016/10/15 PHP
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python获取中文字符串长度的方法
2018/11/14 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
python之yield和Generator深入解析
2019/09/18 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
简历的自我评价
2014/02/03 职场文书
骨干教师考核方案
2014/05/09 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
python文件目录操作之os模块
2021/05/08 Python