Merge pull request #28757 from wxy/20221220.2-️-How-I-use-Artipie,-a-PyPI-repo

RP:published/20221220.2 ️ How I use Artipie, a PyPI repo.md
This commit is contained in:
Xingyu.Wang 2023-03-02 23:28:36 +08:00 committed by GitHub
commit 44e9258db8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,22 +3,26 @@
[#]: author: "Alena Gerasimova https://opensource.com/users/olena" [#]: author: "Alena Gerasimova https://opensource.com/users/olena"
[#]: collector: "lkxed" [#]: collector: "lkxed"
[#]: translator: "geekpi" [#]: translator: "geekpi"
[#]: reviewer: " " [#]: reviewer: "wxy"
[#]: publisher: " " [#]: publisher: "wxy"
[#]: url: " " [#]: url: "https://linux.cn/article-15592-1.html"
我如何使用 Artipie一个 PyPI 仓库 Artipie可用于 Python 的开源仓库管理器
====== ======
![][0]
> Artipie 是一个开源的自托管的仓库管理器,它不仅可以用于 Python。
在学生时代使用 Python 开发时,我发现我需要一些私人的集中存储。这样我就可以存储二进制和文本数据文件,以及 Python 软件包。我在 [Artipie][1] 中找到了答案,这是一个开源的自托管的软件仓库管理器。 在学生时代使用 Python 开发时,我发现我需要一些私人的集中存储。这样我就可以存储二进制和文本数据文件,以及 Python 软件包。我在 [Artipie][1] 中找到了答案,这是一个开源的自托管的软件仓库管理器。
在大学里,我和我的同事们进行研究,并与来自实验测量的大量数据一起工作。我使用 Python 来处理和可视化它们。当时我的大学同事是数学家,没有软件开发技术的经验。他们通常只是在闪存盘上或通过电子邮件传递数据和代码。我努力向他们介绍像 [Git][2] 这样的版本管理系统,但没有成功。 在大学里,我和我的同事们对来自实验测量的大量数据进行研究。我使用 Python 来处理和可视化它们。当时我的大学同事是数学家,没有软件开发技术的经验。他们通常只是在闪存盘上或通过电子邮件传递数据和代码。我努力向他们介绍像 [Git][2] 这样的版本管理系统,但没有成功。
### Python 仓库 ### Python 仓库
Artipie 支持 [PyPI][3] 仓库,使其与 [twine][4] 和 [pip][5] 兼容。这意味着你可以完全像在 [PyPI][3] 和 [TestPyPI][6] 仓库上安装或发布软件包那样使用 Artipie Python 仓库 Artipie 支持 [PyPI][3] 仓库,与 [twine][4] 和 [pip][5] 兼容。这意味着你可以完全像在 [PyPI][3] 和 [TestPyPI][6] 仓库上安装或发布软件包那样使用 Artipie Python 仓库
要创建你自己的 Python 仓库,你可以使用 Artipie 的托管实例,称为 [Artipie Central][7] 。当你登录后,你会看到一个列出你的仓库的页面 (开始时是空的),以及一个添加新仓库的表格。为你的新仓库选择一个名字(例如,`mypython`),选择 “Python” 作为仓库类型,然后点击 **Add** 按钮。 要创建你自己的 Python 仓库,你可以使用名为 [Artipie Central][7] 的 Artipie 托管实例。当你登录后,你会看到一个列出你的仓库的页面(开始时是空的),以及一个添加新仓库的表单。为你的新仓库选择一个名字(例如,`mypython`),选择 `Python` 作为仓库类型,然后点击 “<ruby>添加<rt>Add</rt></ruby> 按钮。
接下来,你会看到一个以 [YAML][8] 格式显示仓库设置的页面: 接下来,你会看到一个以 [YAML][8] 格式显示仓库设置的页面:
@ -36,7 +40,7 @@ repo:
配置中的 `type` 映射设置了仓库的类型。在这个例子中Python 仓库被配置为默认的 Artipie Central 存储。 配置中的 `type` 映射设置了仓库的类型。在这个例子中Python 仓库被配置为默认的 Artipie Central 存储。
`storage` 映射定义了所有仓库包的存储位置。这可以是任何文件系统或 S3 存储兼容的位置。Artipie Central 有一个预先配置的 `default` 存储,任何人都可以使用它进行测试。 `storage` 映射定义了所有仓库包的存储位置。这可以是任何文件系统或 S3 存储兼容的位置。Artipie Central 有一个预先配置的 `default` 存储,可以使用它进行测试。
`permissions` 映射允许为用户 `olenagerasimova` 上传,并允许任何人下载任何软件包。 `permissions` 映射允许为用户 `olenagerasimova` 上传,并允许任何人下载任何软件包。
@ -44,7 +48,7 @@ repo:
### 二进制仓库 ### 二进制仓库
你可以在 Artipie 中存储任何种类的文件。存储类型称为文件或二进制,我用这个作为实验数据的存储。我把它作为 Python 可视化的输入。在 Artipie Central 可以创建一个文件仓库,与 Python 仓库的方式相同。你给它一个名字,选择**二进制**类型,然后点击**添加**按钮。 你可以在 Artipie 中存储任何种类的文件。存储类型`file``binary`,我用这个作为实验数据的存储。我把它作为 Python 可视化的输入。在 Artipie Central 可以创建一个文件仓库,与 Python 仓库的方式相同。你给它一个名字,选择 `binary` 类型,然后点击 “<ruby>添加<rt>Add</rt></ruby>按钮。
``` ```
--- ---
@ -100,7 +104,7 @@ https://central.artipie.com/olenagerasimova/data/y3.dat @data/y3.dat
### Python 项目 ### Python 项目
一个 Python 项目的例子的源代码可以从我的 [GitHub 仓库][13]中获得。这个例的主要想是,从 Artipie Central 下载三个数据文件,将数字读入数组,并使用这些数组来绘制一个图。使用 pip 来安装这个例子包并运行它: 可以从我的 [GitHub 仓库][13]中获得一个 Python 项目的示例源代码。这个例的主要想是,从 Artipie Central 下载三个数据文件,将数字读入数组,并使用这些数组来绘制一个图。使用 `pip` 来安装这个例子包并运行它:
``` ```
$ python3 -m pip install --index-url \ $ python3 -m pip install --index-url \
@ -109,9 +113,9 @@ pypiexample
$ python3 -m pypiexample $ python3 -m pypiexample
``` ```
通过设置 `--index-url` 到 Artipie Central 的 Python 仓库pip 从它那里下载软件包,而不是通常默认的 PyPi 仓库。运行这些命令后,会显示一个带有三条曲线的极坐标图,这是数据文件的可视化。 通过设置 `--index-url` 到 Artipie Central 的 Python 仓库,`pip` 从它那里下载软件包,而不是通常默认的 PyPi 仓库。运行这些命令后,会显示一个带有三条曲线的极坐标图,这是数据文件的可视化。
要将软件包发布到 Artipie Central 仓库,请用 twine 构建并上传: 要将软件包发布到 Artipie Central 仓库,请用 `twine` 构建并上传:
``` ```
commandline commandline
@ -133,14 +137,14 @@ $ podman run -it -p 8080:8080 -p 8086:8086 artipie/artipie:latest
``` ```
这将启动一个运行最新 Artipie 版本的新容器。它还映射了两个端口。你的仓库在 8080 端口提供服务。Artipie 的 Rest API 和 Swagger 文档在 8086 端口提供。一个新的镜像会生成一个默认的配置,打印一个正在运行的仓库列表,测试证书,以及一个指向 [Swagger][14] 文档的链接到你的控制台。 这将启动一个运行最新 Artipie 版本的新容器。它还映射了两个端口。你的仓库在 8080 端口提供服务。Artipie 的 Rest API 和 Swagger 文档在 8086 端口提供。新的镜像会生成一个默认的配置,打印一个正在运行的仓库列表,测试证书,以及一个指向 [Swagger][14] 文档的链接到你的控制台。
你也可以使用 Artipie Rest API 来查看现有的仓库: 你也可以使用 Artipie Rest API 来查看现有的仓库:
- 进入 Swagger 文档页面 `http://localhost:8086/api/index-org.html` - 进入 Swagger 文档页面 `http://localhost:8086/api/index-org.html`
- 在 **Select a definition** 列表中,选择 **Auth token** - 在 <ruby>选择一个定义<rt>Select a definition</rt></ruby>” 列表中,选择 “<ruby>认证令牌<rt>Auth token</rt></ruby>
- 生成并复制用户 artipie 的认证令牌,密码是 artipie。 - 生成并复制用户 `artipie` 的认证令牌,密码是 `artipie`
- 切换到 **Repositories** 定义,点击 **Authorize** 按钮,然后粘贴令牌。 - 切换到 <ruby>仓库<rt>Repositories</rt></ruby>” 定义,点击 “<ruby>认证<rt>Authorize</rt></ruby> 按钮,然后粘贴令牌。
![Image of the Swagger documentation page,][15] ![Image of the Swagger documentation page,][15]
@ -195,7 +199,7 @@ via: https://opensource.com/article/22/12/python-package-index-repository-artipi
作者:[Alena Gerasimova][a] 作者:[Alena Gerasimova][a]
选题:[lkxed][b] 选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi) 译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -216,3 +220,4 @@ via: https://opensource.com/article/22/12/python-package-index-repository-artipi
[13]: https://github.com/artipie/pypi-example [13]: https://github.com/artipie/pypi-example
[14]: https://swagger.io/ [14]: https://swagger.io/
[15]: https://opensource.com/sites/default/files/2022-11/artipie-swagger.png [15]: https://opensource.com/sites/default/files/2022-11/artipie-swagger.png
[0]: https://img.linux.net.cn/data/attachment/album/202303/02/232208fgy56v5egv7ipgg2.jpg