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类定义的讲解
Nov 01 Python
Python对两个有序列表进行合并和排序的例子
Jun 13 Python
Python与Redis的连接教程
Apr 22 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
Numpy之reshape()使用详解
Dec 26 Python
深入了解Python enumerate和zip
Jul 16 Python
python开发入门——set的使用
Sep 03 Python
如何使用Pytorch搭建模型
Oct 26 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
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
js实现简单鼠标跟随效果的方法
2015/04/10 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
使用python实现省市三级菜单效果
2016/01/20 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
2015年度个人思想工作总结
2015/04/08 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
MySQL新手入门进阶语句汇总
2022/09/23 MySQL