标签 Pipenv 下的文章

pipenv 是一个可帮助 Python 开发人员维护具有特定一组依赖关系的隔离虚拟环境,以实现可重新复制的开发和部署环境的工具。它类似于其他编程语言中的工具如 bundler、composer、npm、cargo、yarn 等。

最近发布了新版本的 pipenv 2020.6.2。现在可以在 Fedora 33 和 Rawhide 中使用它。对于较旧的 Fedora,维护人员决定打包到 COPR 中来先进行测试。所以在他们把它推送到稳定的Fedora版本之前,来试试吧。新版本没有带来任何新颖的功能,但是经过两年的开发,它解决了许多问题,并且在底层做了很多不同的事情。之前可以正常工作的应该可以继续工作,但是可能会略有不同。

如何获取

如果你已经在运行 Fedora 33 或 Rawhide,请运行 $ sudo dnf upgrade pipenv 或者 $ sudo dnf install pipenv,你将获得新版本。

在 Fedora 31 或 Fedora 32 上,你需要使用 copr 仓库,直到经过测试的包出现在官方仓库中为止。要启用仓库,请运行:

$ sudo dnf copr enable @python/pipenv

然后将 pipenv 升级到新版本,运行:

$ sudo dnf upgrade pipenv

或者,如果尚未安装,请通过以下方式安装:

$ sudo dnf install pipenv

如果你需要回滚到官方维护的版本,可以运行:

$ sudo dnf copr disable @python/pipenv
$ sudo dnf distro-sync pipenv

COPR 不受 Fedora 基础架构的官方支持。使用软件包需要你自担风险。

如何使用

如果你有用旧版本 pipenv 管理的项目,你应该可以毫无问题地使用新版本。如果有问题请让我们知道。

如果你还不熟悉 pipenv 或想开始一个新项目,请参考以下快速指南:

创建一个工作目录:

$ mkdir new-project && cd new-project

使用 Python 3 初始化 pipenv

$ pipenv --three

安装所需的软件包,例如:

$ pipenv install six

生成 Pipfile.lock 文件:

$ pipenv lock

现在,你可以将创建的 PipfilePipfile.lock 文件提交到版本控制系统(例如 git)中,其他人可以在克隆的仓库中使用此命令来获得相同的环境:

$ pipenv install

有关更多示例,请参见 pipenv 的文档

如何报告问题

如果你使用新版本的 pipenv 遇到任何问题,请在 Fedora 的 Bugzilla中 报告问题。Fedora 官方仓库和 copr 仓库中 pipenv 软件包的维护者是相同的人。请在报告中指出是新版本。


via: https://fedoramagazine.org/come-test-a-new-release-of-pipenv-the-python-development-tool/

作者:torsava 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Pipenv 的目标是将打包界(bundler、composer、npm、cargo、yarn 等)最好的东西带到 Python 世界来。它试图解决一些问题,并简化整个管理过程。

目前,Python 程序依赖项的管理有时似乎是一个挑战。开发人员通常为每个新项目创建一个虚拟环境,并使用 pip 将依赖项安装到其中。此外,他们必须将已安装的软件包的集合保存到 requirements.txt 文件中。我们看到过许多旨在自动化此工作流程的工具和包装程序。但是,仍然需要结合多个程序,并且 requirements.txt 格式本身并不适用于更复杂的场景。

一个统治它们的工具

Pipenv 可以正确地管理复杂的相互依赖关系,它还提供已安装包的手动记录。例如,开发、测试和生产环境通常需要一组不同的包。过去,每个项目需要维护多个 requirements.txt。Pipenv 使用 TOML 语法引入了新的 Pipfile 格式。多亏这种格式,你终于可以在单个文件中维护不同环境的多组需求。

在将第一行代码提交到项目中仅一年后,Pipenv 已成为管理 Python 程序依赖关系的官方推荐工具。现在它终于在 Fedora 仓库中提供。

在 Fedora 上安装 Pipenv

在全新安装 Fedora 28 及更高版本后,你只需在终端上运行此命令即可安装 Pipenv:

$ sudo dnf install pipenv

现在,你的系统已准备好在 Pipenv 的帮助下开始使用新的 Python 3 程序。

重要的是,虽然这个工具为程序提供了很好的解决方案,但它并不是为处理库需求而设计的。编写 Python 库时,不需要固定依赖项。你应该在 setup.py 文件中指定 install_requires

基本依赖管理

首先为项目创建一个目录:

$ mkdir new-project && cd new-project

接下来是为此项目创建虚拟环境:

$ pipenv --three

这里的 -three 选项将虚拟环境的 Python 版本设置为 Python 3。

安装依赖项:

$ pipenv install requests
Installing requests…
Adding requests to Pipfile's [packages]…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…

最后生成 lockfile:

$ pipenv lock
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (b14837)

你还可以检查依赖关系图:

$ pipenv graph
- certifi [required: >=2017.4.17, installed: 2018.4.16]
- chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
- idna [required: <2.8,>=2.5, installed: 2.7]
- urllib3 [required: >=1.21.1,<1.24, installed: 1.23]

有关 Pipenv 及其命令的更多详细信息,请参见文档


via: https://fedoramagazine.org/install-pipenv-fedora/

作者:Michal Cyprian 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出