使用已编译的 Julia 打包 Python?

Jay*_*ley 5 python distutils setuptools setup.py julia

我正在开发一个严重依赖 Julia 库的 python 包。我们实际上没有使用 PyCall,而是.so使用PackageCompiler.jl. ctypes它在 python 模块中被引用。它还需要 Julia 系统映像。

有人对如何打包这个有任何想法吗?我知道您可以在 内部构建 C/C++ distutils,但我还没有真正找到跨多个平台包含 Julia 的好地方。

这里需要明确的是,要使用这个 Python 包,他们需要安装 Julia,并且需要适合其系统的共享对象库。这些可以通过运行 Julia 编译器来获得juliac.jl。其他一切都是用 Python 编写的。

Isa*_*ton 0

package_data假设您使用 setup.py 构建库,则需要在调用时添加共享库setup()

安装程序.py

# call out to build system to build the shared library

setup(
  name="my-extension",
  ext_modules="..."
  package_data="/path/to/mylib.so"
)
Run Code Online (Sandbox Code Playgroud)

请参阅此处的更多文档:https ://docs.python.org/3/distutils/setupscript.html#installing-package-data

运行python setup.py bdist_wheel创建 .whl 文件后,您可能还需要运行auditwheel,它将兼容性标记(例如manylinux1)并隔离(使用散列重命名,修复链接)共享库。