利用 PyPI 分发预编译二进制程序(以 redis-server 为例)

2020-03-07 16:18:41 +08:00
 huntzhan

最近在学习 Python 包管理机制,了解到以下信息:

基于此,可以对任意语言实现的源码进行交叉编译,将编译结果打包成 wheel 格式,发布至 PyPI。用户可直接通过 pip 自动下载安装其平台所需的二进制包。

基于这个思路,我用 GitHub workflow 在 Linux/MacOS 上编译了 Redis 并发布到 PyPI,详见:

1993 次点击
所在节点    程序员
6 条回复
Buges
2020-03-07 16:24:12 +08:00
非 Python 项目你用 pypi 分发干嘛,有必要吗?
huntzhan
2020-03-07 16:28:54 +08:00
@Buges 不是所有 Python 项目都是用纯 Python 编写的,有的是 Cython (scikit-learn),有的是深度整合 C/C++( pytorch ),还有的甚至是用 Python 套个壳程序主体是其他语言。这种情况就需要考虑交叉编译与分发的选项。
Buges
2020-03-07 16:35:59 +08:00
@huntzhan 我知道不是纯 Python,Python 包装的上 pypi 当然无可厚非,但其他的没必要套空壳强行打包成 wheel 吧,不同软件都有自己的分发方式。
huntzhan
2020-03-07 16:39:59 +08:00
@Buges 非常同意。我只是提供一个思路,也没有去提倡把任何程序通过 wheel 分发。
BiuBiuBiu
2020-03-12 00:54:27 +08:00
@huntzhan 你好,曾经在 https://www.zhihu.com/question/34039162 这个问题下看到过你关于 SAM 教程的回答,请问能再补一下链接吗?它好像挂了。
huntzhan
2020-03-12 02:29:14 +08:00
@BiuBiuBiu 好周末补下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/650712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX