pipenv简介

2024-03-01 13:58
文章标签 简介 pipenv

本文主要是介绍pipenv简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

Pipenv 是一个类似于Ruby下的Bundler、Node.js下的npm的一个包管理工具,主要是为应用程序的用户和开发人员提供一种设置工作环境的简单办法。它会自动为项目创建并管理一个virtualenv,并在 安装/卸载 包时从 Pipfile中 添加/删除 包。它还会生成非常重要的 Pipenv.lock 文件,用于生成确定性构建。

安装

$ pip install pipenv

Pipenv的功能

  • 启用真正的确定性构建,同时轻松地指定所需的内容。
  • 为锁定的依赖项生成并检查文件哈希。
  • 如果 pyenv可用,则会自动安装需要的Python版本。
  • 通过查找 Pipfile 自动递归地找到项目根目录。
  • 如果不存在 Pipfile,则会自动生成。
  • 在标准位置自动创建virtualenv。
  • 在 安装/卸载 包时从 Pipfile中 添加/删除 包。
  • 如果存在 .env 文件,则会自动加载。

Pipenv的主要命令有 installuninstall 和一个会生成 Pipfile.lock 文件的 lock 命令。这些命令主要用于替代 pip installpip uninstall 命令,以及手动virtualenv管理(要激活virtualenv,请运行 pipenv shell 命令)。

基本概念

  • 如果不存在virtualenv,则会自动创建。
  • 当以无参数的形式使用 install 命令时,会安装 [packages] 节点下所有的包。
  • 要初始化一个Python 3 的虚拟环境,请使用命令 pipenv --three
  • 要初始化一个Python 2 的虚拟环境,请使用命令 pipenv --two
  • 否则,将使用virtualenv的默认行为

其他命令

  • shell 命令将会生成一个激活了virtualenv的shell。
  • run 命令将在virtualenv中运行给定的命令,并且包括所有附加的参数。
  • check 命令断言当前环境是否满足 PEP 508需求。
  • graph 命令将会把所有已安装的依赖项以漂亮的图表打印出来。

命令行的自动补全功能

如果使用的bash shell,请将以下代码添加到 .bashrc.bash_profile 文件内:

eval "$(pipenv --completion)"

如果使用的fish shell,请将以下代码添加到 ~/.config/fish/completions/pipenv.fish 文件内:

eval (pipenv --completion)

命令详解

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...Options:--where             输出项目根目录相关信息--venv              输出virtualenv相关信息--py                输出Python解释器相关信息--envs              输出环境变量选项--rm                删除virtualenv--bare              最小化输出--completion        命令自动补全--man               显示man页面--three / --two     在创建virtualenv时使用Python3或Python2--python TEXT       指定创建virtualenv时使用的具体的Python版本--site-packages     为virtualenv启用site-packages [env变量:PIPENV_SITE_PACKAGES]--clear             清除缓存(pipenv,pip和pip-tools)[env变量:PIPENV_CLEAR]--pypi-mirror TEXT  指定一个PyPI镜像--version           显示版本信息并退出-h, --help          显示帮助信息并退出使用示例:创建一个项目,并明确指定使用Python3.7:$ pipenv --python 3.7删除项目的virtualenv (inferred from current directory):$ pipenv --rm为项目安装所有依赖项 (including dev):$ pipenv install --dev创建包含pre-releases的lockfile文件:$ pipenv lock --pre将已安装的依赖项显示为图表:$ pipenv graph检查已安装的依赖项是否存在安全漏洞:$ pipenv check安装一个本地的setup.py到你的虚拟环境或Pipfile:$ pipenv install -e .使用原生的pip命令:$ pipenv run pip freezeCommands:check      根据 Pipfile 中提供的PEP 508标记检查安全漏洞clean      卸载所有 Pipfile.lock 未指定的包graph      显示当前安装的依赖项的关系图信息install    如果未指定要安装的包,则会安装 Pipfile 中的所有包,否则,只安装指定的包lock       生成 Pipfile.lock 文件open       在编辑器中查看给定的模块run        运行virtualenv中已安装的命令shell      在virtualenv内启动一个shellsync       安装 Pipfile.lock 中指定的所有的包uninstall  卸载一个指定的包并将其从 Pipfile 中移除update     先运行lock命令,在运行sync命令

定位项目目录:

$ pipenv --where
/Users/kennethreitz/Library/Mobile Documents/com~apple~CloudDocs/repos/kr/pipenv/test

定位virtualenv目录:

$ pipenv --venv
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre

定位Python解释器:

$ pipenv --py
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre/bin/python

安装包:

$ pipenv install
Creating a virtualenv for this project...
...
No package provided, installing all dependencies.
Virtualenv location: /Users/kennethreitz/.local/share/virtualenvs/test-EJkjoYts
Installing dependencies from Pipfile.lock...
...To activate the virtualenv of this project, run the following:
$ pipenv shell

从git安装:

您也可以使用pipenv从git和其他版本控制系统安装包,安装时使用的URL遵从以下的规则:

<vcs_type>+<scheme>://<location>/<user_or_organization>/<repository>@<branch_or_tag>#<package_name>

惟一可选的部分是 @<branch_or_tag> 部分。在git中使用SSH协议时,可以使用vcs的缩写和schema的别名git+git@<location>

<user_or_organization>/<repository>@<branch_or_tag>#<package_name>

注意,这在解析时将被转换为 git+ssh://git@<location>

vcs_type 可用的值包括 gitbzrsvnhg。schema可用的值包括 httphttpssshfile

在特定情况下,您还可以访问其他schema:snv 可以和 snv 组合起来作为一个schema,bzr 可以与 sftplp 组合作为一个方案。

请注意,强烈建议您使用 pipenv install -e 以可编辑模式安装任何版本控制的依赖项,以确保每次执行依赖项解析时都可以使用存储库的最新副本执行,并且包含所有已知的依赖项。

要将位于 https://github.com/requests/requests.git 的git仓库中的标记 v2.19.1 安装为名为 requests的包,可以使用如下命令:

$ pipenv install -e git+https://github.com/requests/requests.git@v2.19#egg=requests
Creating a Pipfile for this project...
Installing -e git+https://github.com/requests/requests.git@v2.19.1#egg=requests...
[...snipped...]
Adding -e git+https://github.com/requests/requests.git@v2.19.1#egg=requests to Pipfile's [packages]...
[...]

请参阅 pip实现对vcs的支持 以了解更多相关信息。

安装开发依赖项:

$ pipenv install pytest --dev
Installing pytest...
...
Adding pytest to Pipfile's [dev-packages]...

显示依赖项关系图:

$ pipenv graph
requests==2.18.4- certifi [required: >=2017.4.17, installed: 2017.7.27.1]- chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]- idna [required: >=2.5,<2.7, installed: 2.6]- urllib3 [required: <1.23,>=1.21.1, installed: 1.22]

生成lockfile文件:

$ pipenv lock
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Note: your project now has only default [packages] installed.
To install [dev-packages], run: $ pipenv install --dev

安装所有开发依赖项:

$ pipenv install --dev
Pipfile found at /Users/kennethreitz/repos/kr/pip2/test/Pipfile. Considering this to be the project home.
Pipfile.lock out of date, updating...
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...

卸载所有依赖项:

$ pipenv uninstall --all
No package provided, un-installing all dependencies.
Found 25 installed package(s), purging...
...
Environment now purged and fresh!

使用shell:

$ pipenv shell
Loading .env environment variables…
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.
$ 

这篇关于pipenv简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762677

相关文章

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

SaaS、PaaS、IaaS简介

云计算、云服务、云平台……现在“云”已成了一个家喻户晓的概念,但PaaS, IaaS 和SaaS的区别估计还没有那么多的人分得清,下面就分别向大家普及一下它们的基本概念: SaaS 软件即服务 SaaS是Software-as-a-Service的简称,意思是软件即服务。随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。 它是一种通过Internet提供