通过Pipfile进行依赖关系管理

setuptools-pipfile的Python项目详细描述


设置工具PIP文件

通过Pipfile进行依赖关系管理

Travis (.org)MITPyPIPythonDownloads

概述

在基本模式下,setuptools pipfile执行以下操作:

  • 从packages表填充install_requires。在
  • 从dev packages表填充tests_require。在
  • 如果依赖项需要,从源表填充dependency_links。在

高级配置可用于控制:

  • Pipfile的路径。在
  • 可变插值。在
  • 正在从dependency_links中删除索引。在
  • 激活并控制填充extras_require。在
  • 控件填充python_requires。在

要了解为什么默认情况下不启用此功能,请参见Advanced Usage。在

基本用途

在您的设置.py. 在

这假设Pipfile与位于同一个文件目录中设置.py. 在

如果pip文件位于其他位置,则可以将use_pipfile设置为相对于设置.py. 在

高级用法

{这些功能目前还没有被提供。在

要启用高级模式,只需向use_pipfile提供选项dict。在

Pipfile路径

要在高级模式下更改路径,只需设置路径键

setup(use_pipfile={'path':'src/Pipfile'})

环境变量插值

如果由于某种原因需要此pipenv功能,可以通过设置interpolate键来重新启用它。在

^{pr2}$

请注意,如果启用了插值,则所有索引URL都将具有其基本身份验证 删除凭据以防止将其填充到包元数据中。在

禁用自定义索引依赖链接

要禁用自定义索引依赖链接的填充,只需设置索引键。在

setup(use_pipfile={'indexes':False})

根据pep440建议,在install_requires和{}中将这些硬设置为直接url。在

setup(use_pipfile={'indexes':True})

填充Python需要

Pipfile当前锁定到特定的次要版本。复制到Pipfile.lock文件. 更好的做法是允许定义一系列允许的版本。 然后在运行pipenv install时,concreate版本被锁定到Pipfile.lock文件. 在

要在将来启用此功能,请将pythons键设置为True。在

要将键更改为lookup,请将pythons键设置为备用格式字符串。在

setup(use_pipfile={'pythons':'{0[requires][python_versions]}'})

填充Extras

Pipfile目前不支持这一点,但是如果支持的话,它可能会以三种方式之一得到支持。在

风格一

第一种更可能的风格是这样的:

[extra.socks]PySocks={version=">=1.5.6, !1.5.7"}win_inet_pton={sys_platform="win32",python_version="2.7"}

要使用样式1的默认设置,请执行以下操作:

setup(use_pipfile={'extras':True})# orsetup(use_pipfile={'extras':1})# orsetup(use_pipfile=1)

要将表的前缀更改为[option.socks]之类的内容,请使用:

setup(use_pipfile={'extras':{'table':'option'}})

风格二

第二种样式基于poetry语法。在

[[extra]]name="socks"[extra.packages]PySocks={version=">=1.5.6, !1.5.7"}win_inet_pton={sys_platform="win32",python_version="2.7"}

使用样式2的默认设置:

setup(use_pipfile={'extras':{'style':2}})# orsetup(use_pipfile={'extras':2})# orsetup(use_pipfile=2)

与样式1类似,使用table字段更改表前缀。在

setup(use_pipfile={'extras':{'style':2,'table':'option'}})

使用subtable字段更改用于描述包的后缀。在

setup(use_pipfile={'extras':{'style':2,'subtable':'requires'}})

要将打包后缀更改为[extras.require]之类的内容,请使用:

setup(use_pipfile={'extras':{'style':2,'table':'extras','subtable':'require'}})

最后使用额外的密钥更改组:

setup(use_pipfile={'extras':{'style':2,'key':'title'}})

这将导致:

[[extra]]title="socks"

风格三

第三种样式基于Pipfile dev包实现。在

[socks-packages]PySocks={version=">=1.5.6, !1.5.7"}win_inet_pton={sys_platform="win32",python_version="2.7"}

要使用样式三:

setup(use_pipfile={'extras':{'style':3}})# orsetup(use_pipfile={'extras':3})# orsetup(use_pipfile=3)

最后一种变化是使dev包可安装的最快方法。 这对于测试tox之类的框架非常有用。 只需将依赖项指定为.[dev]。在

未来状态

虽然目前还没有进一步发展的计划,但未来总是在变化。 如果pipenv和Pipfile实现了一种不同的方式来执行某些操作,那么这将随之改变。 也就是说,任何突破性的修改都会伴随着一个主要版本的增加。在

为确保将来的兼容性:

  • 确保依赖于此包在主要版本上有一个上限
  • 或显式设置所有配置选项。在

例如,启用extras style 1并硬设置所有当前默认值

setup(use_pipfile={'path':'Pipfile','interpolate':False,'pythons':False,'extras':{'style':1,'table':'extra'}})

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener