【问题标题】:How do you use nuitka shared object files?你如何使用 nuitka 共享对象文件?
【发布时间】:2019-02-21 04:35:48
【问题描述】:
我正在用python -m nuitka --module some_package --include-package=some_package编译一个包
它产生一个some_package.so。使用此文件的正确方法是什么?
Python 可以自己导入 so 文件。
我可以导入 some_package 本身,但我根本无法导入任何子模块。如果我dir(some_package),则没有可用的方法或模块。
我该怎么办?
【问题讨论】:
标签:
python
shared-libraries
nuitka
【解决方案1】:
如果您使用--module,您可能应该这样做:
import some_package
使用 ctypes 的另一种方法:
import ctypes
my_package = ctypes.cdll.LoadLibrary('./some_package.so')
【解决方案2】:
可能为时已晚,但也许这会对其他人有所帮助:
为了让 Python 能够理解包结构,您需要从编译中排除 __init__.py 文件。之后您应该能够导入任何子模块。