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

相关文章

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提供

LIBSVM简介

LIBSVM简介 支持向量机所涉及到的数学知识对一般的化学研究者来说是比较难的,自己编程实现该算法难度就更大了。但是现在的网络资源非常发达,而且国际上的科学研究者把他们的研究成果已经放在网络上,免费提供给用于研究目的,这样方便大多数的研究者,不必要花费大量的时间理解SVM算法的深奥数学原理和计算机程序设计。目前有关SVM计算的相关软件有很多,如LIBSVM、mySVM、SVMLight等,这些

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

新一代车载(E/E)架构下的中央计算载体---HPC软件架构简介

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。 时间不知不觉中,快要来到夏末秋初。一年又过去了一大半,成

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工