使用pipenv从pipfile生成需求[-dev].txt
pipenv-to-requirements的Python项目详细描述
从Pipfile生成requirements[-dev].txt(使用pipenv)。 用于我的modern Python module project cookiecutter。 模板。
- 自由软件:麻省理工学院
- 文档:https://pipenv-to-requirements.readthedocs.org/en/latest/
- 来源:https://github.com/gsemet/pipenv-to-requirements
有理
Pipfile及其同级Pipfile.lock显然是定义明确依赖关系的高级工具 或者一个包裹。Pipfile将由包的开发人员维护,而Pipfile.lock 表示当前系统上当前安装的内容的清晰图像,确保完整 设置的可复制性。有关Pipfile format here的详细信息。大多数情况下,Pipfile.lock应该被忽略(即,不是 在你的git中进行跟踪)以获取在pypi上发布的包。
pipenv是维护Pipfile的好工具,但是 对于仍在使用的工具和服务,开发人员可能会遇到向后兼容性问题。 requirements.txt还不知道如何处理Pipfile或Pipfile.lock。
例如:
- Read the Docs
- Pyup(实验支持是 arriving)
- 任何使用PBR(*)的库
- pip install(如果安装的软件包pip没有requirements.txt, 即使使用Pipfile,也不会安装其依赖项
(*):目前,我建议至少生成requirements.txt(不带版本 (冻结)对于在pypi上发布的使用pbr的库。记住PBR自动同步 requirements.txt的内容位于具有此包的setup.py的包的根目录中。 这允许自动安装包的依赖项。 如果没有此文件,您的包将由pip安装,但其依赖项将被忽略。 将来可能会增加PBR中的支持(参见 this patch)。
用法
在构建python模块的source/binary/wheel包之前,仅执行以下操作 命令:
生成需求文件(即依赖关系最终按范围描述),通常 对于库:
pipenv run pipenv_to_requirements
生成冻结的需求(即,所有依赖项的版本都已冻结),通常用于 应用程序:
pipenv run pipenv_to_requirements -f
它将在当前 目录。
也可以:
pipenv run pipenv_to_requirements -d requirements-dev-custom.txt pipenv run pipenv_to_requirements -d requirements-dev-custom.txt -f pipenv run pipenv_to_requirements -o requirements-custom.txt pipenv run pipenv_to_requirements -o requirements-custom.txt -f pipenv run pipenv_to_requirements -d requirements-dev-custom.txt -o requirements-custom.txt -f
使用生成文件的示例:
dev: pipenv install --dev pipenv run pip install -e . dists: requirements sdist bdist wheels requirements: # For a library, use: pipenv run pipenv_to_requirements # For an application, use: # pipenv run pipenv_to_requirements -f sdist: requirements pipenv run python setup.py sdist bdist: requirements pipenv run python setup.py bdist wheels: requirements pipenv run python setup.py bdist_wheel
只需使用make requirements来刷新requirements.txt。
阅读文档
只需在树中提交这些文件,以便读取roc,并确保它们是同步的 你改变Pipfile的时间。别忘了让阅读文档使用requirements-dev.txt 在建立文档时。
贡献
使用
$ make dev
执行单元测试:
$ make test
代码格式化程序:
$ make style
代码样式检查:
$ make check