让distutils安装预构建的编译库?

2024-10-03 17:20:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我管理一个用python编写的开源项目(Remix,源代码在那里可用)。我们要求用户运行python设置.pyinstall可安装软件。最近我们添加了一个编译的C++包(SoundTouch的一个端口——去源代码中的外部/外部)来查看它。设置.py文件,该文件将安装基础混音库以同时安装pysoundtouch14库。在

但是,我们不希望用户在他们的系统上必须有gcc或msvc工具链。我们已经为通用平台(linux-i386、windows、mac10.5和10.6)预编译了二进制文件,请访问trunk/externals/pysoundtouch14/build查看它们。我希望没有安装gcc或msvc的用户可以运行pysoundtouch14设置.py它会检测到我们预先构建的二进制文件的存在,并将它们复制到正确的位置(例如/Library/Python/2.5/site-packages),但这不会发生。例如,在新的10.5系统上,设置.py抱怨没有安装gcc,即使.so needs to install已在build/文件夹中构建。在

所以我有两个直接的问题: 我怎样才能得到设置.py只需根据平台自动“安装”预构建的.so和.pyd文件,而不需要构建系统? 一个人怎么能设置.py(我们的主设置.py文件)同时运行设置.py另一个附带的软件包(pysoundtouch14'ssetup.py?)


Tags: 文件项目用户pybuildso源代码系统
2条回答

考虑到多平台的要求,你的第一个问题很难回答。如果只是windows,可以使用安装后脚本选项运行脚本来处理库,或者只使用非python工具,如NSIS。除了阿尔玛德的建议,我不知道还能做什么。在

对于第二个问题,您可能需要查看Paver。在

不幸的是,我认为重写install命令才是正确的方法。在

这可以很容易地完成,使用自定义分发命令。例如,见[1] http://svn.zope.org/Zope/branches/2.9/setup.py?rev=69978&view=auto

相关问题 更多 >