如何构建依赖于大型系统库的Python包

如何构建依赖于大型系统库的Python包,python,opencv,pip,distutils,Python,Opencv,Pip,Distutils,当Python包依赖于大型系统库时,通过distils构建Python包的合适方法是什么 我发现了这个,但它指的是一个可安装的Python应用程序,而不是一个通用包 我已经编写了一个依赖OpenCV的包。我只关心支持Linux发行版,但大多数发行版要么不提供OpenCV,要么提供的版本太旧而无法使用。不幸的是,OpenCV太大、太麻烦(并且依赖于其他几个系统库),无法包含在包中并在构建步骤中编译 我目前的方法是在My setup.py中不做任何特殊操作,只在try/except中导入其Pytho

当Python包依赖于大型系统库时,通过distils构建Python包的合适方法是什么

我发现了这个,但它指的是一个可安装的Python应用程序,而不是一个通用包

我已经编写了一个依赖OpenCV的包。我只关心支持Linux发行版,但大多数发行版要么不提供OpenCV,要么提供的版本太旧而无法使用。不幸的是,OpenCV太大、太麻烦(并且依赖于其他几个系统库),无法包含在包中并在构建步骤中编译


我目前的方法是在My setup.py中不做任何特殊操作,只在try/except中导入其Python模块,如果导入失败,则显示详细的错误消息。有更好的方法吗?

您可以使用zc.buildout:


您应该能够从此扩展项目的构建配置:

您可以将python cv模块指定为依赖项吗?有和@jterrace,我已经考虑过了,但我不确定我是否想要,因为这些可能已经过时了。为了在Ubuntu11.10上编译当前的OpenCV,我必须遵循一组非常复杂的步骤,下载并安装Ubuntu11.10标准repos中没有的特定依赖项。我不相信pip能重现这些步骤。我想知道OpenCV也能做到这一点。我不认为你能绕过“大而笨重”的部分,除非你只分离出你想要的OpenCV的部分并用它们编译。也许如果你有一个二进制安装程序,它可以用脚本编写安装程序?嗨@Cerin,我和你有完全相同的问题。你现在找到一个合适的解决方案了吗?@Cerin,如果你找到了一个解决方案,你能和我们分享它作为一个答案吗?