我试图为cgal-bindings制作setup.py。要安装它,用户需要至少具有某个版本的CGAL。此外,如果用户有一些库(如Eigen3),CGAL有一些可选的目标。 Python中是否有跨平台方式来检查?
我可以使用。 < - 这实际上并不常用,有些库只是像eigen3这样的头文件,它是一个C ++模板库。 find_library
中的ctypes.util
来检查图书馆是否存在,但我看不到任何简单的方法来获取版本
使用install_requires
的{{1}}参数仅适用于Python库,CGAL是C / C ++库。
答案 0 :(得分:4)
是否应根据某些库版本的可用性编译特定扩展模块,可以通过在ext_modules
中动态生成setup()
setup.py
参数来完成。
对于_yaml.so
的{{1}}模块,只有在系统上安装了ruamel.yaml
开发库时才应该编译:
libyaml
这样,您不需要分发中的额外文件。即使您无法在编译时根据版本号进行编译,也应该如此 能够从临时目录运行生成的程序并检查退出值和/或输出。