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 difflib模块示例讲解
Sep 13 Python
Python实现PS滤镜的旋转模糊功能示例
Jan 20 Python
Python 函数基础知识汇总
Mar 09 Python
Python实现中一次读取多个值的方法
Apr 22 Python
Python异常处理操作实例详解
May 10 Python
python中使用zip函数出现错误的原因
Sep 28 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python:type、object、class与内置类型实例
Dec 25 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
Python Pillow(PIL)库的用法详解
Sep 19 Python
scrapy头部修改的方法详解
Dec 06 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的分页功能
2007/03/21 PHP
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
Python csv文件记录流程代码解析
2020/07/16 Python
python regex库实例用法总结
2021/01/03 Python
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
演讲稿开场白
2014/01/13 职场文书
自荐信写法介绍
2014/01/25 职场文书
市场策划求职信
2014/08/07 职场文书
运动会报道稿300字
2014/10/02 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
教师读书活动心得体会
2016/01/14 职场文书