打包的细节可以看这个 PR: https://github.com/laixintao/iredis/pull/279
非常简单,用 PyOxidizer 打包之后自动上传到 github 的 release,只要写好这个 Github Action 之后,以后只要在 master 打 tag 就会自动 release。
缺点就是 PyOxidizer 打包,如果第三方依赖(几乎是必然)有 __file__
的依赖的话,就无法打包成一个文件,必须带一个 lib/
目录。
有兴趣的可以在 release 页面下载 tar 解压之后运行一下。
1
jakezh 2020-03-02 05:28:04 +08:00 via iPhone
pyinstaller 了解一下
|
2
scriptB0y OP @jakezh pyinstaller 本质上是吧整个库的文件都打包起来,运行的时候再解压到文件系统,比 PyOxidizer 要慢很多
|
3
jakezh 2020-03-02 09:08:44 +08:00
去 github 看了一下还真是, 居然还是用 rust 写的, 等有空试试
|
4
scriptB0y OP @jakezh 是的,本质山使用 Cargo 那套 build 系统,直接把解释器和 py 代码嵌套一起去了。
还有一个 Nutika 是直接翻译 Py 代码到 C,然后编译个 bianry 的。 PyOxidizer 这里有个对比各个类似打包工具的文档: https://pyoxidizer.readthedocs.io/en/stable/comparisons.html |
5
dragonszy 2020-03-02 10:11:04 +08:00
战略马克,的确 pyinstaller 太慢了。
|
6
bbxiong 2020-03-02 15:24:55 +08:00
马克 py 打包
|
7
lc1450 2020-03-02 18:32:34 +08:00
没有编译好的版本吗,折腾了半天,也没有编译出来 rust 太难了
|
8
scriptB0y OP @lc1450 大哥。。心疼你。。。release 页面有编译好的啊,下载解压就能运行了……
https://github.com/laixintao/iredis/releases/latest 帖子里说了…… > 有兴趣的可以在 release 页面下载 tar 解压之后运行一下。 |
11
lc1450 2020-03-02 20:32:52 +08:00
是呀就是这么弄的,然后下载了一大堆文件编译,然后就各种报错
|
13
dragonszy 2020-03-10 20:13:36 +08:00
在 PyOxidizer 的打包工具比较中发现了 Nuitka,应该是比较不错的工具。
|