我有一个 python 应用程序,它使用ctypes
、加载和调用动态 C 库。
我想zipapp
用这个应用程序创建一个,但我不知道如何从应用程序中获取库的路径。目录树是:
mypackage/
├── __init__.py
├── __main__.py
└── lib
└── libmylyb.so
并且__main__.py
是:
#!/usr/bin/env python3
from ctypes import *
h = cdll.LoadLibrary("./lib/libmylib.so")
...
我通过执行以下操作创建 zipapp:
python3 -m zipapp mypackage
但是当我尝试执行它时,我收到一个错误,因为找不到上面的库。
我知道pkgutil.get_data
可以用来读取文件内容,我想我可以读取库二进制数据,将其写入临时文件并加载它,但是有没有更好的方法来做我想做的事?