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 实现堆排序算法代码
Jun 05 Python
python批量导出导入MySQL用户的方法
Nov 15 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
使用Python写一个量化股票提醒系统
Aug 22 Python
python3实现表白神器
Apr 09 Python
Python如何实现转换URL详解
Jul 02 Python
pytorch 输出中间层特征的实例
Aug 17 Python
Python字节单位转换实例
Dec 05 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
pytorch forward两个参数实例
Jan 17 Python
python 元组的使用方法
Jun 09 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实现对二维数组某个键排序的方法
2016/09/14 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
python刷投票的脚本实现代码
2014/11/08 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python中用Spark模块的使用教程
2015/04/13 Python
python开发之for循环操作实例详解
2015/11/12 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
小学生期末自我鉴定
2014/01/19 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
会计电算化实训报告
2014/11/04 职场文书
高三英语教学计划
2015/01/23 职场文书
2015年安全月活动总结
2015/03/26 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript