【发布时间】:2021-08-23 23:33:43
【问题描述】:
我有一个主要用 Python 编写的软件,目前,我正在使用 PyInstaller 以用户友好的方式捆绑和分发该软件(它是我的 CI 管道的一部分,适用于 Linux 和 Windows) .
但是,我的表现很糟糕,我想在 Julia 中重写一些繁重的部分,同时将前端保留在 Python 中。我可以使用PyJulia 来执行此操作,但这意味着用户必须手动安装 Julia 才能使用我的程序。
Julia 确实有 PyInstaller 的等价物,即 PackageCompiler.jl,但我不知道如何从 Python 端调用使用 PackageCompiler.jl 编译的东西。
我怎样才能完成这项工作,以便我可以捆绑和分发包含 Python、Julia 及其运行所需的一切的可执行文件?
更多细节
我的最终用户是不知道编程是什么的人(化学家和药剂师)。他们没有 Python、Julia 或 Docker(他们甚至不想安装它)。
在我目前的方法中,与 PyInstaller 捆绑在一起的软件由一个可执行文件组成,其中包含所有内容(Python 及其所需的一切)。我真正想要的是保持相同的用户体验,同时 Julia 在后台运行。
我将在 Julia 端实现几个函数,并且我想要(几乎)与 PyJulia 相同的集成级别。
也许我会去 Rust 并只使用 C 接口,但我真的很想使用 Julia。
感谢大家的宝贵时间。
【问题讨论】:
-
Docker 会是你的选择吗? PackageCompiler 通常只有在 Julia 部分的启动时间对您来说是个问题时才需要,否则依赖 Pkg 安装 Julia 端会更容易。
-
@lungben 我不能依赖 Pkg,因为它不会存在于用户的机器上。出于同样的原因,Docker 也无济于事,因为理想情况下,我的最终用户不知道它是什么。
标签: python julia pyinstaller packagecompiler.jl