使用 Pipenv 开发 Python 库
Developing a Python library with Pipenv
我正在尝试开发一个 Python 库,它最终将被放在 PyPI 上。
这是我在另一个项目中使用的库,它是从 PyPI 中提取的。
我在自己的项目存储库中对该库进行了单元测试。但是我主要是通过主应用来测试正在使用的库。
我之前在本地"publishing"图书馆,使用
pip install -e
以便另一个存储库中的主项目可以从本地包中提取它,我可以在上下文中对其进行测试。
但现在我要转向 pipenv。我希望能够做同样的事情。但是如果我将依赖项放在 Pipenv 文件中,它似乎试图从真正的 PyPI 中提取,而不是我的本地存储。
如何使用 Pipenv 设置此工作流?
Pipenv 可以从各种来源安装包,而不仅仅是从 PyPI。 CLI 用法与 pip, which is a feature of pipenv. You can pass a local path or a URL with CVS prefix 到 pipenv install
非常相似。 Pipenv 会相应地将包添加到 Pipfile。
CLI 用法
首先转到主应用程序的项目文件夹(其中包含 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 用法
通常不需要直接修改Pipfile。有关 pipfile 中的高级设置,请参阅 Pipfile's specs。以下是 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 索引
虽然有点矫枉过正,但为了完整起见,设置一个 服务器也可以。
我正在尝试开发一个 Python 库,它最终将被放在 PyPI 上。
这是我在另一个项目中使用的库,它是从 PyPI 中提取的。
我在自己的项目存储库中对该库进行了单元测试。但是我主要是通过主应用来测试正在使用的库。
我之前在本地"publishing"图书馆,使用
pip install -e
以便另一个存储库中的主项目可以从本地包中提取它,我可以在上下文中对其进行测试。
但现在我要转向 pipenv。我希望能够做同样的事情。但是如果我将依赖项放在 Pipenv 文件中,它似乎试图从真正的 PyPI 中提取,而不是我的本地存储。
如何使用 Pipenv 设置此工作流?
Pipenv 可以从各种来源安装包,而不仅仅是从 PyPI。 CLI 用法与 pip, which is a feature of pipenv. You can pass a local path or a URL with CVS prefix 到 pipenv install
非常相似。 Pipenv 会相应地将包添加到 Pipfile。
CLI 用法
首先转到主应用程序的项目文件夹(其中包含 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 用法
通常不需要直接修改Pipfile。有关 pipfile 中的高级设置,请参阅 Pipfile's specs。以下是 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 索引
虽然有点矫枉过正,但为了完整起见,设置一个