在 python 3.10.8 中导入 vtk 模块时,使用 TBB 构建的 VTK 会出现 DLL 加载错误

问题描述 投票:0回答:1

我正在使用 TBB 后端从源代码构建 VTK 9.2.2,我生成的轮子在 Linux 上运行良好,但在 Windows 上却出现错误。

在 python 3.10.8 中导入 vtk 模块时,使用 TBB 构建的 VTK 会出现 DLL 加载错误

详情:

>>> import vtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\DE-Python\lib\site-packages\vtk.py", line 31, in <module>
    all_m = importlib.import_module('vtkmodules.all')
  File "C:\DE-Python\Lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\DE-Python\lib\site-packages\vtkmodules\all.py", line 7, in <module>
    from .vtkCommonCore import *
ImportError: DLL load failed while importing vtkCommonCore: The specified module could not be found.
>>>

我尝试使用 os.add_dll_directory() 添加 VTK Dll 的位置,但仍然遇到相同的错误。

有一个未解决的问题:https://gitlab.kitware.com/vtk/vtk/-/issues/18472

这里提到的解决方法都不适合我。

vtk
1个回答
0
投票

我能够在 VTK 中解决这个问题。

在 python 3.10+ 上编译时,VTK 存在错误,请参见此处:https://gitlab.kitware.com/vtk/vtk/-/issues/18472

一些 VTK 专家/用户提到的当前解决方法是:

  1. 创建文件:C:\Python\Lib\site-packages tkmodules\ _build_paths.py 并向其中添加 tbb 和 vtk dll 路径。
  2. 第二个选项是使用 os.add_dll_directory() 添加 tbb 和 vtk DLL 路径
© www.soinside.com 2019 - 2024. All rights reserved.