setup.py检查是否存在非python库依赖项

时间:2015-03-03 23:08:09

标签: python setuptools distutils setup.py cgal

我试图为cgal-bindings制作setup.py。要安装它,用户需要至少具有某个版本的CGAL。此外,如果用户有一些库(如Eigen3),CGAL有一些可选的目标。 Python中是否有跨平台方式来检查?

我可以使用find_library中的ctypes.util来检查图书馆是否存在,但我看不到任何简单的方法来获取版本。 < - 这实际上并不常用,有些库只是像eigen3这样的头文件,它是一个C ++模板库。

使用install_requires的{​​{1}}参数仅适用于Python库,CGAL是C / C ++库。

1 个答案:

答案 0 :(得分:4)

是否应根据某些库版本的可用性编译特定扩展模块,可以通过在ext_modules中动态生成setup() setup.py参数来完成。

对于_yaml.so的{​​{1}}模块,只有在系统上安装了ruamel.yaml开发库时才应该编译:

libyaml

这样,您不需要分发中的额外文件。即使您无法在编译时根据版本号进行编译,也应该如此 能够从临时目录运行生成的程序并检查退出值和/或输出。