gpt4 book ai didi

python - 在 python 模块 (pypi) 中包含 DLL

转载 作者:行者123 更新时间:2023-12-03 08:53:45 42 4
gpt4 key购买 nike

我有一个 python 模块,它将 DLL 中的函数包装在同一目录中,并使用 ctypes 加载该库。

__lib = cdll.LoadLibrary("deviceSys.dll")

这是我的目录布局:

deviceSys
- wrapper.py
- deviceSys.dll
- __init__.py

我遵循包指南,但是当我的代码是 PyPi 上的模块时,我不确定如何加载 dll。例如,如果我使用 ctypes 加载库,它会产生错误,因为它是在本地搜索: OSError:[WinError 126]找不到指定的模块

我需要以某种方式嵌入我的 dll 或在包包含的资源中搜索该文件。有办法做到这一点吗?

最佳答案

我明白了。您需要将 DLL 添加到 setup.py 中的 package_data 中:

include_package_data=True,
package_data={"devsys": ['deviceSystem.dll']},

要从 wrapper.py 中获取文件,请使用以下命令:

dir = os.path.dirname(sys.modules["devsys"].__file__)
path = os.path.join(dir, "deviceSystem.dll")
__lib = cdll.LoadLibrary(path)

关于python - 在 python 模块 (pypi) 中包含 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57191483/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com