我有一个用 cmake 构建的扩展 python 模块。模块需要在运行时链接到它的第三方 libutil.dll。模块和 libutil.dll 都打包到 wheel 中。
有没有一些方法可以帮助 python 通过 setup.py 配置找到模块的 libutil.dll?模块和 .dll 位于包中的同一文件夹中。
我调查了一些方法,但都被拒绝了:
- 在 PATH 变量或其他一些环境变量中添加 dll 的路径;
- 从存储 dll 的目录启动 python
setup.py 有下一个内容:
from setuptools import setup
setup(
name ='my_ext_module',
version = '0.0.1',
classifiers = ["Programming Language :: Python :: 3"],
packages = ['my_ext_module'],
package_dir = {'my_ext_module' : 'src/module_dir'},
package_data = {'' : ['*']},
python_requires = ">=3.5"
)
该项目具有以下结构:
setup.py
src
|---module_dir
|---__init__.py
|---ext_module.pyd
|---libutil.dll