在Windows上将DLL复制到site-packages的Python方法

8 投票
1 回答
6478 浏览
提问于 2025-04-15 22:38

我正在写一个Python扩展模块,这个模块需要链接一个第三方的DLL文件。我该如何通过distutils(也就是在我的setup.py文件里)把这个DLL文件复制到site-packages目录呢?

1 个回答

8

把你的DLL文件放到你调用setup()时的package_data参数里(具体细节可以参考distutils文档中的安装包数据部分)。

如果你需要把DLL放在包目录之外,可以使用data_files选项。比如说,如果你想把它放到site-packages目录里:

import distutils.sysconfig

setup(
    # [...]
    data_files = [(distutils.sysconfig.get_python_lib(), ["/path/to/the/DLL"])],
)

撰写回答