通过Pipfile进行依赖关系管理
setuptools-pipfile的Python项目详细描述
设置工具PIP文件
通过Pipfile进行依赖关系管理
概述
在基本模式下,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
和{
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'}})
- 项目
标签: