在Windows上将DLL文件复制到Python的site-packages目录

8

我正在编写一个需要链接第三方DLL的Python扩展模块。如何使用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"])],
)

谢谢。我希望将DLL复制到site-packages的根级目录,而不是特定于包的子目录中。是否有一种使用package_data来实现这一点的方法? - Jason Sundram
“data_files”选项允许您将文件放在任何您喜欢的地方,详见我提供的文档链接中的第2.7节。 - Luper Rouch
2
另一个方便的知识点:将目录设置为空字符串即可将文件安装在软件包文件夹中,例如使用 '' 而不是 (distutils.sysconfig.get_python_lib() - smiddy84
如何提供相对路径到 .dll 文件? - a11apurva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接