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

Posted

技术标签:

【中文标题】如何在自定义 CDN 服务器上静态部署 python ***包?【英文标题】:How do I deploy a python wheels package statically on a custom CDN server? 【发布时间】:2019-02-12 07:28:21 【问题描述】:

我有一个 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】:

您可以在 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

请参阅PEP 503 -- Simple Repository API,了解有关如何构建 HTML 页面的确切规范。

【讨论】:

以上是关于如何在自定义 CDN 服务器上静态部署 python ***包?的主要内容,如果未能解决你的问题,请参考以下文章

静态提供在自定义端口上打开的内部(apache 服务器)NodeJS api 并将其转发到公共 url

DistributedCDN

create-react-app脚手架项目打包CDN部署

部署新 PC 时是不是可以在自定义准备的映像上应用 unattend.xml?

nginx代理cdn静态文件不一致

前端工程之CDN部署