如何在自定义CDN服务器上静态部署python wheel软件包?

时间:2018-09-07 01:34:05

标签: python pypi python-wheel pypiserver

我有一个CPython扩展包的分支,实际上需要几个小时来编译,因此我想将预编译的轮子部署到某个地方以供下载,而不是从源代码进行编译。

我也知道我自己可以托管pypiserver,但是我有CDN服务,我可以免费使用它,我想知道是否可以以某种方式“静态”在我的CDN上部署轮子,然后执行以下操作:

pip install -i https://<my cdn of choice> SomePackage

代替:

pip install https://<my cdn of choice>/SomePackage-1.0-py2.py3-none-any.whl

这将允许我指定软件包的版本或操作系统。

在这种情况下,“存储库”的含义就是一个文件夹,其中包含一系列按正确顺序排列的静态文件。

1 个答案:

答案 0 :(得分:1)

您可以在CDN的根部创建一个“简单”索引,并使每个项目的文件结构等效于pip所期望的“简单”索引,这基本上是:

simple
├── SomePackage
│   ├── SomePackage-1.0-py2.py3-none-any.whl
│   └── index.html
└── index.html

然后您可以这样做:

$ pip install -i https://<my cdn of choice>/simple SomePackage

有关如何构造HTML页面的确切规范,请参见PEP 503 -- Simple Repository API