前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Pipenv——最好用的python虚拟环境和包管理工具

Pipenv——最好用的python虚拟环境和包管理工具

作者头像
用户1432189
发布于 2018-09-05 02:07:45
发布于 2018-09-05 02:07:45
17.1K00
代码可运行
举报
文章被收录于专栏:zingpLiuzingpLiu
运行总次数:0
代码可运行

pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包。过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题;过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenv和pip的合体,且更加强大。pipenv开源之后,在GitHub上有很高人气(截止于现在有9600多星)。

pipenv主要有以下特性:

  (1)pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。

  (2)过去用virtualenv管理requirements.txt文件可能会有问题,Pipenv使用Pipfile和Pipfile.lock,后者存放将包的依赖关系,查看依赖关系是十分方便。

  (3)各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。。

(4)通过加载.env文件简化开发工作流程。

  (5)支持Python2 和 Python3,在各个平台的命令都是一样的。

下面快速介绍pipenv的基本使用,文章末尾有其github链接。本文的测试环境是windows下的Python3.6,对于其他平台同样适用。

1 安装pipenv

首先请确保安装了python3和对应的pip3,如果你的python和pip对应的是python3.x,忽略数字3。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pip3 install pipenv

如下:

2 创建虚拟环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 mkdir project
2 cd project
3 pipenv install

如下:

初始化好虚拟环境后,会在项目目录下生成2个文件PipfilePipfile.lock。为pipenv包的配置文件,代替原来的 requirement.txt。

项目提交时,可将Pipfile 文件和Pipfile.lock文件一并提交,待其他开发克隆下载,根据此Pipfile 运行命令pipenv install --dev生成自己的虚拟环境。

Pipfile.lock 文件是通过hash算法将包的名称和版本,及依赖关系生成哈希值,可以保证包的完整性。

3 安装python包(module)

用pycharm先打开咱们刚刚创建的project,然后创建APP目录,在app目录下创建如下spider.py文件,导入requests库,并没有安装这个包。

安装requests包,命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv install requests

详情参见下图:

这样,在pycharm里就能看到requests已经可用,并且能抓取到网页了。

4 查看安装包及依赖关系

命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv graph

详情参见下图:

4.1 通过--dev指明只安装在开发环境中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv install --dev requests --three

详情如下图:

反应在Pipfile如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[source]]

url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"


[packages]

requests = "*"


[dev-packages]

requests = "*"


[requires]

python_version = "3.6"

安装包记录是在[dev-packages] 部分,或是[packages] 部分。

在安装时,指定--dev参数,则只安装[dev-packages]下的包;若安装时不定指定--dev参数,只会安装[packages] 包下面的模块。

在构建新的python虚拟环境时,会自动下载安装[requires] 下的包。

5 兼容requirements.txt 文件

5.1 pipenv可以像virtualenv一样用命令生成requirements.txt 文件,命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv lock -r --dev > requirements.txt

详情如下图:

5.2 pipenv也可以通过requirements.txt安装包

命令参见:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv install -r requirements.txt

这样我们可以重用之前的requirement.txt 文件来构建我们新的开发环境,把我们的项目顺利的迁到pipenv。

6 运行python代码(py文件)

6.1 方法一: pipenv run python xxx.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv run python xxx.py

详情如下:

6.2 方法二:启动虚拟环境的shell环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv shell

详情如下:

加上参数也可:

7 删除python包(module)

删除包的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pipenv uninstall [module_name]

例如卸载之前安装的requests包:

8 删除虚拟环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pipenv --rm

如下:

删除虚拟环境之后,再次运行pip shell 会发现先为这个project创建虚拟环境,然后再打开shell。如下:

9 常用命令一览

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pipenv --where                 列出本地工程路径
pipenv --venv                  列出虚拟环境路径
pipenv --py                    列出虚拟环境的Python可执行文件
pipenv install                 创建虚拟环境
pipenv isntall [moduel]        安装包
pipenv install [moduel] --dev  安装包到开发环境
pipenv uninstall[module]       卸载包
pipenv uninstall --all         卸载所有包
pipenv graph                   查看包依赖
pipenv lock                    生成lockfile
pipenv run python [pyfile]     运行py文件
pipenv --rm                    删除虚拟环境

本篇完。更多内容参见:pipenv 的GitHub地址

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Pipenv – 超好用的 Pytho
pipenv 是 python 官方推荐的包管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,类似于 php 中的 composer。
py3study
2020/01/03
1.5K0
Requests库作者Kenneth Reitz的另一神作!虚拟环境及包管理工具Pipenv!
我们在运行 Python 项目的时候经常会遇到一些版本问题,例如 A 项目依赖于 Django 1.5,而 B 项目又依赖 Django 2.0,而我们的系统却只有一个 Python 解释器,我们所有的包都被装在了 Python 安装目录的 site-packages 目录下,所以 Django 只能是某个特定的版本,所以这样就会导致运行的时候导致 A 或 B 项目出现兼容问题。为了解决这个问题,我们可能会使用 virtualenv 来为项目创建一套独立的 Python 运行环境,或者我们可能会使用 Doc
崔庆才
2018/04/04
1.4K0
Requests库作者Kenneth Reitz的另一神作!虚拟环境及包管理工具Pipenv!
测开入门篇《环境管理、编码规范、项目结构》
测试开发研发的测试平台是给点点点的人用的,可以帮助我们做自动化测试、用例管理、报表生成等,提高测试工作效率。
清菡
2020/12/16
8150
测开入门篇《环境管理、编码规范、项目结构》
Pipenv:功能强大的Python依赖管理工具
gradioPython 项目的依赖管理一直以来都是开发者头疼的问题。 pip 和 virtualenv 的组合虽然好用,但配置繁琐,容易出错。而 Pipenv 的出现,彻底改变了这一现状,它以简洁高效的方式,整合了虚拟环境管理和包依赖管理,成为 Python 开发者的必备工具。本文将深入探讨 Pipenv 的核心功能、使用方法以及它如何简化你的开发流程。
luckpunk
2025/01/24
1560
Pipenv:功能强大的Python依赖管理工具
[232]requests库作者另一神器Pipenv的用法
我们在运行 Python 项目的时候经常会遇到一些版本问题,例如 A 项目依赖于 Django 1.5,而 B 项目又依赖 Django 2.0,而我们的系统却只有一个 Python 解释器,我们所有的包都被装在了 Python 安装目录的 site-packages 目录下,所以 Django 只能是某个特定的版本,所以这样就会导致运行的时候导致 A 或 B 项目出现兼容问题。为了解决这个问题,我们可能会使用 virtualenv 来为项目创建一套独立的 Python 运行环境,或者我们可能会使用 Docker 容器来实现不同项目的隔离运行,但总的来说,它们使用起来其实并没有那么方便。另外在进行 Python 包管理时,requirements.txt 这样的包依赖标识文件也显得很鸡肋,在某些情况下可能会带来一些麻烦。为了解决这些问题,一个更加使用方便的包管理工具诞生了,叫做 Pipenv,接下来就让我们一起来了解一下它的用法。
周小董
2022/04/12
8610
Python 虚拟环境方案比较
最近在写一个网站后台,由于涉及到阿里云的 SDK ,而阿里云在自己的源(https://mirrors.aliyun.com)上发布的 SDK 要新,因此在设置 Python 的包管理的时候需要注意很多东西。
Fred Liang
2018/08/02
5310
Python包管理工具之pipenv
传统的成熟方案中,我们为了避免包版本的管理混乱,通常我们是依赖于当前的Python版本创建一个虚拟环境,并在虚拟环境中使用pip进行包管理。现在有一个好用的工具叫pipenv来帮助我们更方便的管理包。
没有故事的陈师傅
2022/09/15
7750
pycharm使用虚拟环境_pycharm配置虚拟环境
Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包,现在它也已经是 Python 官方推荐的包管理工具。
全栈程序员站长
2022/09/27
1.2K0
pycharm使用虚拟环境_pycharm配置虚拟环境
Python虚拟环境和包管理工具Pipe
Python虚拟环境是一个虚拟化,从电脑独立开辟出来的环境。在这个虚拟环境中,我们可以pip安装各个项目不同的依赖包,从全局中隔离出来,利于管理。 传统的Python虚拟环境有virtualenv,使用pip freeze -> requirements.txt 导出依赖。现在又有了一个新神器 -- Pipenv, 它是由大名鼎鼎的requests 作者 Kenneth Reitz 写的一个命令行工具,这个工具包装了virtualenv,使用Pipfile和Pipfile.lock管理,更加方便。
py3study
2020/01/16
6270
pipenv快速入门
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/82891847
乐百川
2019/07/02
5560
Pipenv:官方推荐的python包管理工具
Pipenv - 官方推荐的的python包管理工具。 Pipenv是一款旨在将所有包管理工具(如bundler, composer, npm, cargo, yarn等)的优点集中应用于pytho
小小科
2018/05/03
1.7K0
Pipenv:官方推荐的python包管理工具
使用pipenv管理python环境
也可以使用pipenv run python xxx.py在不激活环境的情况下用以该环境运行脚本
zx钟
2019/07/23
1.5K0
使用pipenv管理python环境
Python虚拟环境
本教程将引导你完成安装和使用 Python 包。 它将向你展示如何安装和使用必要的工具,并就最佳做法做出强烈推荐。请记住, Python 用于许多不同的目的。准确地说,你希望如何管理依赖项可能会根据 你如何决定发布软件而发生变化。这里提供的指导最直接适用于网络服务 (包括 Web 应用程序)的开发和部署,但也非常适合管理任意项目的开发和测试环境。 注解 确保你已经有了 Python 和 pip 在您进一步之前,请确保您有 Python,并且可从您的命令行中获得。 你可以通过简单地运行以下命令来检查:
若与
2018/04/25
1.7K0
Python虚拟环境
Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]
要搞清楚什么是虚拟环境,首先要清楚Python的环境指的是什么。当我们在执行python test.py时,思考如下问题:
全栈程序员站长
2022/09/27
41.9K0
Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]
python测试开发01-虚拟环境搭建
Python虚拟环境的主要目的是为了给不同的工程创建相互独立的运行环境。在虚拟环境下,每一个工程都有自己独立的依赖包,而与其它的工程无关。不同的虚拟环境中同一个包可以有不同的版本,并且,虚拟环境的数量没有限制,我们可以轻松的地用virtualenv或者pipenv等工具来创建多个虚拟环境。
wencheng
2020/11/03
7313
python测试开发01-虚拟环境搭建
pipenv 让你的虚拟环境更加funny一点
Pipenv是一种工具,旨在将所有包装领域(捆扎机,作曲家,npm,货物,纱线等)中的最佳产品引入Python世界。Windows是我们世界上的头等公民。
PayneWu
2020/12/24
1.4K0
Python小世界:项目虚拟环境配置
和其他大多数现代编程语言一样,Python对包和 模块的下载、存储以及管理有其自己的一套方法。但是当我们同时开发多个项目工程的时候,不同的项目会将第三方的包存放在相同的路径下。这就意味着,如果有两个工程依赖同一个包,但是所需要的版本却不一样,比如项目A依赖v1.0.0,而项目B依赖v2.0.0。由于Python无法根据版本来区分包的安装路径,那么此时,就会发生版本冲突。
py3study
2020/01/15
1.1K0
(三十四)初遇python之Pipenv(windows)
各位读者大大们大家好,今天学习python的pipenv,并记录学习过程欢迎大家一起交流分享。
XXXX-user
2019/07/23
8940
(三十四)初遇python之Pipenv(windows)
比virtuslenv更好用的虚拟环境
Pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt)。
py3study
2020/01/02
7970
Python3 系列之 环境包管理神器
pipenv 是在 pip 与 virtualenv 基础上发展而来的,弥补了之前 virtualenv 通过 requirements.txt 来管理项目包等方面的不足,此外还有所扩展,功能更加强大, 已经发展成为 Python 官方推荐的工具。
py3study
2020/01/17
4710
相关推荐
Pipenv – 超好用的 Pytho
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验