如何将VTK for Python3安装包含在setup.py中



VTK库无法通过pip安装。不过,它可以从源代码进行编译和安装。

我的Python项目依赖于VTK。我希望它通过从项目的根目录调用pip install .来自动安装VTK。在这种情况下,setup.py文件应该能够

  • 从GitHub下载所需版本的VTK源代码
  • 调用cmake以准备生成
  • 编译源代码并创建Python绑定
  • 将所需文件安装到当前使用的site-packages中(例如,如果我使用virtualenvpipenvpyenv,则不应将其安装到/usr/local/lib/python3/site-packages中)

有可能吗?如果是,我该怎么做?

原则上,您可以在设置文件中包含任何可执行代码。但是,在setuptools文档中,我找不到可以解决此问题的信息。

此外,vtk的安装过程有点复杂,这就是为什么kitware首先使用cmake的原因。

因此,简短的回答是"不"或"不要那样做"。

此外,您将遇到的问题:

  1. 用户将期望透明安装。但是,在vtk的cmake构建指令的基础上实现跨平台构建过程将阻止您设置自定义(vtk的路径、Python解释器的路径、特定于平台的C标志)。

  2. 安装过程将更难调试。用户会来找你解决VTK构建问题。

  3. 厨具本身并不建议在pypi上使用vtk。这表明,要实现这一目标需要太多的时间、不可能或太脆弱。

如果你想看到一个流行的依赖vtk的Python项目,有mayavi。安装说明要求事先安装vtk。

看起来VTK已经通过pypi提供了他们的官方绑定,所以我可以在setup.py文件中使用它,只需将它附加到install_requires列表中即可。在我的项目中运行良好,不再需要编译。

不过,mayavi文档中有一条警告

所有主要平台都提供最新的VTK车轮(Windows、MacOS和Linux),但仅适用于64位机器。Python 3.x在所有这些操作系统上都完全支持,在MacOS和Linux。如果你运气不好,而你的平台不是支持,则您需要使用一般构建和安装说明

最新更新