【发布时间】:2025-12-09 11:10:01
【问题描述】:
我有一个 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 可以用来读取文件内容,我想我可以读取库二进制数据,将其写入临时文件并加载它,但是有没有更好的方式来做我想做的事?
【问题讨论】:
标签: python python-packaging zipapp