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

时间:2011-11-04 22:11:55

标签: python distutils

如何指定一组任意文件(非必需的.py文件),以便像普通的Python模块一样分发和安装它们?

一些背景

我正在使用distutils来分发和安装我的Python库。此库中的一个模块导入名为bpy.so的第三方Python扩展(这是Blender模块)。 bpy.so扩展还需要一些其他文件。我想在我的库中分发和安装bpy.so以及其他必需的文件。

执行此操作的一种方法是将所有额外文件指定为data_files to setup()。但是,我不知道如何可靠地指定与我的纯python模块相同的安装目录(例如/usr/local/lib/python3.2/dist-packages)。 我可以通过创建MANIFEST.in文件来分发额外的文件(请参阅this question),但我也想安装文件。

1 个答案:

答案 0 :(得分:0)

我建议在distutils之上使用setuptools。

This是一个很好的参考文档,可以开始使用它。使用setuptools的优点是它有一些很好的功能,例如可以自动或根据过滤器包含给定目录(包)下的所有文件。 This是上述文件中涉及这一特定方面的部分。

HTH!

PS:distutils目前的情况/限制是其大多数用户抱怨的原因。似乎a new generation of the library正在进行中!