最近在学习 Python 包管理机制,了解到以下信息:
pip install
会根据当前平台信息( i.e. windows/macos/linux )自动选择匹配对应的 wheel。基于此,可以对任意语言实现的源码进行交叉编译,将编译结果打包成 wheel 格式,发布至 PyPI。用户可直接通过 pip 自动下载安装其平台所需的二进制包。
基于这个思路,我用 GitHub workflow 在 Linux/MacOS 上编译了 Redis 并发布到 PyPI,详见:
1
Buges 2020-03-07 16:24:12 +08:00 via Android
非 Python 项目你用 pypi 分发干嘛,有必要吗?
|
2
huntzhan OP @Buges 不是所有 Python 项目都是用纯 Python 编写的,有的是 Cython (scikit-learn),有的是深度整合 C/C++( pytorch ),还有的甚至是用 Python 套个壳程序主体是其他语言。这种情况就需要考虑交叉编译与分发的选项。
|
3
Buges 2020-03-07 16:35:59 +08:00 via Android
@huntzhan 我知道不是纯 Python,Python 包装的上 pypi 当然无可厚非,但其他的没必要套空壳强行打包成 wheel 吧,不同软件都有自己的分发方式。
|
5
BiuBiuBiu 2020-03-12 00:54:27 +08:00
@huntzhan 你好,曾经在 https://www.zhihu.com/question/34039162 这个问题下看到过你关于 SAM 教程的回答,请问能再补一下链接吗?它好像挂了。
|