用已编译的Julia打包Python吗?

问题描述 投票:2回答:1

我正在研究高度依赖Julia库的python软件包。实际上,我们没有使用PyCall,而是使用.so将Julia代码向下编译为共享对象PackageCompiler.jl文件。在python模块中使用ctypes进行引用。它还需要一个Julia系统图像。

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

这里要清楚,对于要使用此Python软件包的人,他们需要安装Julia,并且需要为其系统使用适当的共享库。这些可以通过运行Julia编译器juliac.jl来获得。其他所有内容都在Python中。

python julia setuptools setup.py distutils
1个回答
0
投票

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

setup.py

# call out to build system to build the shared library

setup(
  name="my-extension",
  ext_modules="..."
  package_data="/path/to/mylib.so"
)

在此处查看更多文档:https://docs.python.org/3/distutils/setupscript.html#installing-package-data

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

© www.soinside.com 2019 - 2024. All rights reserved.