如何将用于Python3安装的VTK包含到setup.py中?

如何将用于Python3安装的VTK包含到setup.py中?,python,python-3.x,pip,setuptools,vtk,Python,Python 3.x,Pip,Setuptools,Vtk,无法通过pip安装VTK库。 不过,它可以从源代码处编译和安装 我的Python项目依赖于VTK。 我希望它通过从项目的根目录调用pip install.自动安装VTK。 在这种情况下,setup.py文件应该能够 从GitHub下载所需版本的VTK源代码 调用cmake以准备构建 编译源代码并创建Python绑定 将所需文件安装到当前使用的站点软件包中(例如,如果我使用virtualenv、pipenv或pyenv,则不应将其安装到/usr/local/lib/python3/site软件包

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

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

  • 从GitHub下载所需版本的VTK源代码
  • 调用
    cmake
    以准备构建
  • 编译源代码并创建Python绑定
  • 将所需文件安装到当前使用的
    站点软件包中(例如,如果我使用
    virtualenv
    pipenv
    pyenv
    ,则不应将其安装到
    /usr/local/lib/python3/site软件包中)
可能吗?
如果是,如何执行此操作?

原则上,您可以在安装文件中包含任何可执行代码。然而,在世界上任何地方我都找不到解决这个问题的信息

另外,vtk的安装过程有点复杂,这就是kitware首先使用cmake的原因

因此,简短的回答是“不”或“不要那样做”

此外,您将遇到以下问题:

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

  • 安装过程将更难调试。用户将向您咨询VTK构建问题

  • Kitware本身不建议在pypi上使用vtk。这表明,要实现这一目标,需要花费太多的时间、不可能或太脆弱


  • 如果您希望看到一个依赖于vtk的流行Python项目,可以使用mayavi。预先安装vtk的请求。

    看起来vtk已经通过pypi展示了他们的功能,因此我可以在
    setup.py
    文件中使用它,只需将它附加到
    install\u requires
    列表中即可。 在我的项目中运行良好,不再需要编译

    不过,在这方面有一个警告

    最新的VTK车轮可在所有主要平台上使用 (Windows、MacOS和Linux),但仅适用于64位计算机。Python3.x 在所有这些操作系统和上的Python 2.7.x上都完全受支持 MacOS和Linux。如果你运气不好,而你的平台不是 支持,然后您将需要使用 一般构建和测试中讨论的特定分布 安装说明