使用 Pipenv 开发 Python 库



我正在尝试开发一个Python库,最终将放在PyPI上。

这是我在另一个项目中使用的库,它从 PyPI 中提取它。

我在自己的项目存储库中对库进行了单元测试。但我主要通过主应用程序测试正在使用的库。

我以前在本地"发布"库,使用

pip install -e

以便另一个存储库中的主项目可以从本地包中提取它,我可以在上下文中对其进行测试。

但现在我要搬到pipenv。我希望能够做同样的事情。但是,如果我将依赖项放在 Pipenv 文件中,它似乎试图从真正的 PyPI 中提取,而不是我的本地存储。

如何使用 Pipenv 设置此工作流程?

Pipenv 可以安装来自各种来源的软件包,而不仅仅是来自 PyPI。pipenv 的 CLI 在设计上与 pip 非常相似,因为许多pipenv install参数在内部通过管道传输到pip install。 您可以使用本地路径 或带有 VCS 前缀的 URL 作为带有 pipenv 或 pip 的包说明符。

命令行使用情况

首先转到主应用程序的项目文件夹(包含 Pipfile)。然后运行

$ pipenv install --dev -e "/path/to/your/local/library"

如果库由 Git 或 SVN 控制,您也可以使用如下所示的 URL:

$ pipenv install --dev -e git+https://github.com/your_user_id/libraryname@develop

如果库的 Git 存储库存储在本地,请使用file://而不是https://github.com。 还支持FTP和SSH等其他协议。

上面的命令将从源中提取包,安装它并修改当前文件夹中的 Pipfile 以包含包。

pipfile use

通常您不需要直接修改 Pipfile。有关 pipfile 中的高级设置,请参阅 pipfile 的规格。以下是pipfile的一些示例条目

[dev-packages]
mylibrary = { git = 'https://github.com/xxx/mylibrary.git', ref = '0.0.1', editable = true }
"e1839a8" = {path = "/path/to/your/local/library2", editable = true}
"e51a27" = {file = "/path/to/your/local/library1/build/0.0.1.zip"}

设置私有 PyPI 索引

虽然这是矫枉过正,但为了完整,设置一个私有的 PyPI 服务器也可以工作。

最新更新