【python】虚拟环境管理之 virtualenv 、pipenv
虚拟环境介绍
应用场景
python在安装第三方包时,会被pip安装到/site-package下,如果我们需要同时维护多个python项目,那这些项目都会共用一个python,而真实需求是多个项目之间依赖的包或包版本都不一样时,每个项目可能都需要拥有一套独立的环境,需要在这三个环境中随意切换,这时候虚拟环境就完美解决了这个问题。
虚拟环境
有了虚拟环境后,我们可以使用虚拟环境工具创建多个相互独立、互不影响的虚拟环境,不同的虚拟环境可以安装不同的包。

使用虚拟环境的好处
保持全局环境的干净
指定不同的依赖版本
方便记录和管理依赖
virtualenv
win 下安装 vitualenv
cmd进入命令行,安装virtualenv:pip install virtualenv
安装虚拟环境管理包:pip install virtualenvwrapper-win
本地新建文件,用于存放项目,建议命名.env或.virtualenv,文件名前面可以加点也可以不加,加上表示在windows中该文件是隐藏文件;
配置环境变量:我的电脑右键-->属性-->高级系统设置-->环境变量-->系统变量新建变量名:WORKON_HOME,变量值:第三步新建virtualenv文件所在目录,保存即环境创建成功。

virtualenv 基本用法
创建虚拟环境:mkvirtualenv -p python3 自定义虚拟环境名
(在存放虚拟环境的目录下执行;-p指定python版本,可以不加,默认指定已安装的python版本)
查看所有已创建的所有虚拟环境:workon
进入虚拟环境:workon 虚拟环境名
查看虚拟环境下所有已安装的包:pip install(在虚拟环境安装、卸载安装包与python环境命令一致)
退出虚拟环境:deactivate
删除虚拟环境:rmvirtualenv 虚拟环境名
virtualenv虚拟环境迁移
将项目一的虚拟环境迁移到项目二的虚拟环境上:
当前目录下输入命令:pip freeze > requirements.txt,将当前环境所有的包名导出至requirements.txt文件;
输入:pip install -r requirements.txt,安装文件中所有的包。
pipenv
pipenv是集成pip、virtualenv功能的虚拟环境工具,完善两者的缺陷。
pipevn优点
记录了固定版本的详细依赖包列表,查看依赖关系十分方便;
使用了哈希校验,无论安装还是卸载都非常安全。
安装步骤
python中安装pipenv:pip install pipenv
创建虚拟环境:pipenv install ,创建后项目工程自动生成Pipfile和Pipfile.lock两份文件
Pipfile:记录项目的依赖包
Pipfile.lock:记录依赖包的详细信息,通过hash算法将包名称、版本及依赖关系生成哈希值,保证包的完整性


pipenv 的基本用法
安装虚拟环境包到默认环境:pipenv install 包名
安装虚拟环境包到开发环境:pipenv install 包名 --dev
卸载虚拟环境包:pipenv uninstall 包名(会将该包与依赖包全部卸载)
查看当前虚拟环境下安装包及依赖关系:pipenv graph
进入虚拟环境:pipenv shell
列出本地工程的路径:pipenv --where
列出虚拟环境路径:pipenv --venv
列出虚拟环境的python可执行文件:pipenv --py
生成 Pipfile.lock 文件:pipenv lock
退出虚拟环境:exit
删除虚拟环境:pipenv --rm
pipenv 虚拟环境迁移
将项目一的虚拟环境迁移到项目二的虚拟环境上:
安装pipenv:pip install pipenv
复制Pipfile和Pipfile.lock两份文件到新项目上
新项目的终端执行命令:
恢复默认环境[packages]命令:pipenv install
恢复开发环境[dev-packages]命令:pipenv install --dev

【python】虚拟环境管理之 virtualenv 、pipenv的更多相关文章
- python虚拟环境管理之virtualenv,virtualenvwrapper,pipenv,conda
虚拟环境的作用 使python环境拥有独立的包,避免污染原本的python环境.为不同的项目创建不同的环境可以避免安装的库过于庞大和相互干扰. 例如你想在同一台机器上开发用python2和python ...
- python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm
1 引言 进行Python开发时,多个项目可能使用到不同的依赖,例如A项目需要1.8版本的Django,而B项目需要2.0版本的Django,这时候如果没有使用虚拟环境,就需要来回卸载和安装Djang ...
- Python多环境管理神器(pipenv)
pipenv 参考官网:https://pipenv.pypa.io/ pipenv 是一款比较新的包管理工具,其借鉴了 javascript 的 npm 和 PHP 的 composer 等理念,通 ...
- python——虚拟环境管理大合集
个人常用:pipenv 安装 pip3 install pipenv 创建虚拟环境 # 默认安装在~/.local/virtualenv下 mkdir project cd project pipen ...
- python虚拟环境管理 Pipenv 使用说明
安装 pip install pipenv 检查是否安装成功 pipenv --version 创建虚拟环境(在工程文件夹下) pipenv install 默认下,Pipenv统一管理所有虚拟环境 ...
- Python虚拟环境管理工具virtualenvwrapper安装及配置
1. 安装virtualenv 使用pip install virtualenv安装virtualenv虚拟环境工具 2. 安装virtualenvwrapper a) Linux环境,直接使用p ...
- Linux python 虚拟环境管理
直接复制的内容: 原著:https://www.cnblogs.com/q767498226/p/11099884.html 报错解决:https://blog.csdn.net/weixin_467 ...
- python虚拟环境管理包virtualenvwrapper
1.打开cmd 2.安装virtualenvwrapper pip install virtualenvwrapper-win 3.配置虚拟环境的位置 新建系统变量默认在c盘 4.新建虚拟环境 mkv ...
- OSX编译安装Python3及虚拟开发环境Virtualenv
0X00.前言 因为工作原因,最近主要做Python开发,刚好电脑系统重装之后所有的东西都需要重新配置.此文主要记录OSX下通过源码编译安装Python3以及安装虚拟开发环境Virtualenv. 0 ...
随机推荐
- [Python] Pandas 中 Series 和 DataFrame 的用法笔记
目录 1. Series对象 自定义元素的行标签 使用Series对象定义基于字典创建数据结构 2. DataFrame对象 自定义行标签和列标签 使用DataFrame对象可以基于字典创建数据结构 ...
- [视频] 使用 JavaCV 来显示和保存来自摄像头的视频
目录 JavaCV 预览本机摄像头视频图像的简单实现 预览的同时,保存为FLV文件 JavaCV javacv开发包是用于支持java多媒体开发的一套开发包,可以适用于本地多媒体(音视频)调用以及音视 ...
- std::invoke_result的实现详解
目录 目录 前言 invoke_result 标准库中的invoke_result 我的实现 后记 前言 本篇博文将详细介绍一下libstdc++中std::invoke_result的实现过程,由于 ...
- CSS 解决Float后塌陷问题
当父级元素没有设定高度时候,而子集元素设定float类型时候,此时父级元素不能靠子集元素撑起来,所以就形成了塌陷: 示例分析 **1.Float之前的效果** <!DOCTYPE html> ...
- WIN10修改应用的默认打开方式
如图所示: 选中想要替换成为的应用程序, 在其中勾选想设默认应用的文件类型即可.
- Web 开发之 HTTP/2 & SPDY & HTTP 1.1 & HTTP 对比分析详解!
1 https://zh.wikipedia.org/wiki/HTTP/2 HTTP/2 维基百科,自由的百科全书 HTTP/2(超文本传输协议第2版 ...
- React Hooks & Context API
React Hooks & Context API responsive website https://reactjs.org/docs/hooks-reference.html https ...
- 1080 Graduate Admission——PAT甲级真题
1080 Graduate Admission--PAT甲级练习题 It is said that in 2013, there were about 100 graduate schools rea ...
- 微信小程序:条件渲染wx:if和hidden
一.条件渲染:wx:if,wx:elif,wx:else 花括号中的true或false可以改成变量从而来动态显示. 二.hidden 只显示hidden2 当标签不是频繁切换显示(控制是否渲染到页面 ...
- JAVA 判断一个字符串是否是合法的日期格式?
采用SimpleDateFormat类的parse方法进行判断,如果转换不成功,就会出现异常.另外,还需要判断字符串的长度,若不判断,第二个字符串就会验证通过,实际上也不是合法的.话不多说,且看代码: ...