使用distutils安装预编译的python扩展

1 投票
1 回答
860 浏览
提问于 2025-04-17 05:40

我该如何指定一组任意的文件(不一定是.py文件),让它们像普通的Python模块一样被分发和安装呢?

一些背景信息

我正在使用distutils来分发和安装我的Python库。这个库中的一个模块需要用到一个叫bpy.so的第三方Python扩展(这是一个Blender模块)。bpy.so扩展还需要其他一些文件。我想把bpy.so和这些额外需要的文件一起分发和安装。

一种方法是把所有额外的文件作为data_files添加到setup()中。但是,我不知道怎么才能可靠地指定与我的纯Python模块相同的安装目录(比如/usr/local/lib/python3.2/dist-packages)。我可以通过创建一个MANIFEST.in文件来分发这些额外的文件(可以参考这个问题),但我也想要安装这些文件。

1 个回答

0

我建议在distutils的基础上使用setuptools。

这个链接是一个很好的入门参考文档。使用setuptools的好处是,它有一些很不错的功能,比如可以自动包含某个目录(包)下的所有文件,或者根据特定的过滤条件来选择文件。这个链接是上面文档中专门讲这个功能的部分。

希望这对你有帮助!

PS:很多用户对distutils目前的状况和限制有很多抱怨。不过,似乎这个库的新版本正在开发中!

撰写回答