我管理一个用 python 编写的开源项目( Remix ,源代码在那里可用)。我们要求用户运行 python setup.py install 来安装软件。最近我们添加了一个已编译的 C++ 包(SoundTouch 的一个端口——转到源代码中的 trunk/externals 以查看它。)我们希望安装基本 Remix 库的 setup.py 文件也安装 pysoundtouch14 库。
但是,我们不希望用户必须在他们的系统上安装 gcc 或 msvc 工具链。我们已经为常见平台(linux-i386、windows、mac 10.5 和 10.6)预编译了二进制文件,请转到 trunk/externals/pysoundtouch14/build 以查看它们。我希望没有安装 gcc 或 msvc 的用户可以运行 pysoundtouch14 的 setup.py,它会检测到我们预构建的二进制文件的存在并将它们复制到正确的位置(/Library/Python/2.5/site-packages ,例如。)但这不会发生。例如,在新的 10.5 系统上,setup.py 抱怨没有安装 gcc,即使它需要安装的 .so 已经构建在 build/ 文件夹中。
所以我有两个直接的问题:
- 如何让 setup.py 根据平台自动在正确的位置“安装”预构建的 .so 和 .pyd 文件,而不需要构建系统?
- 一个 setup.py(我们的主 setup.py 文件)如何同时运行另一个包含的包的 setup.py(pysoundtouch14 的 setup.py?)