欢迎光临
我们一直在努力

VTK Python 开发环境配置完整指南 详细介绍pip安装与源码编译部署VTK,解决常见依赖问题

作者 :丁林松  

目录

  • VTK 简介
  • 环境准备
  • 使用 pip 安装 VTK
  • 源码编译安装
  • 依赖问题处理
  • 安装验证
  • 常见问题排查
  • 示例代码
  • 1. VTK 简介

    VTK(Visualization Toolkit)是一个开源的、跨平台的计算机图形学、图像处理和可视化软件系统。它由Kitware公司开发,广泛应用于科学计算、医学影像、工程仿真等领域。

    主要特性

    • 强大的3D可视化能力:支持各种3D图形渲染和交互
    • 丰富的数据处理算法:包含大量的图像处理和几何算法
    • 多语言支持:原生C++,同时支持Python、Java等语言绑定
    • 跨平台兼容:支持Windows、Linux、macOS等主流操作系统
    • 开源免费:采用BSD许可证,可用于商业项目

    应用领域

    科学可视化

    流体力学、气象学、天体物理学等领域的数据可视化

    医学影像

    CT、MRI、超声等医学图像的处理和三维重建

    工程仿真

    有限元分析、CAD/CAM、结构分析等工程应用

    地理信息

    地形可视化、GIS数据处理、地质建模

    2. 环境准备

    系统要求

    操作系统
    • Windows 10/11 (64位)
    • Ubuntu 18.04+ / CentOS 7+ / Fedora 30+
    • macOS 10.14+
    Python 版本

    Python 3.7+ (推荐 3.8 或更高版本)

    硬件要求
    • 内存:至少 4GB RAM (推荐 8GB+)
    • 显卡:支持 OpenGL 3.2+ 的显卡
    • 存储:至少 2GB 可用空间

    基础工具安装

    Python 环境检查

    # 检查 Python 版本
    python –version
    python3 –version

    # 检查 pip 版本
    pip –version
    pip3 –version

    创建虚拟环境(推荐)

    # 使用 venv 创建虚拟环境
    python -m venv vtk_env

    # 激活虚拟环境
    # Windows
    vtk_env\\Scripts\\activate
    # Linux/macOS
    source vtk_env/bin/activate

    # 升级 pip
    pip install –upgrade pip

    最佳实践:强烈建议使用虚拟环境来隔离VTK开发环境,避免与系统Python环境发生冲突。

    3. 使用 pip 安装 VTK

    pip 安装是最简单快捷的方式,适合大多数用户的需求。

    基本安装

    # 安装最新版本的 VTK
    pip install vtk

    # 指定版本安装
    pip install vtk==9.2.6

    # 安装预发布版本
    pip install –pre vtk

    不同平台的注意事项

    Windows 平台

    # 如果遇到权限问题,使用管理员权限
    pip install –user vtk

    # 如果需要特定的 Visual Studio 版本支持
    pip install vtk –force-reinstall –no-cache-dir

    Linux 平台

    # Ubuntu/Debian 系统可能需要额外的系统依赖
    sudo apt-get update
    sudo apt-get install python3-dev python3-pip
    sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
    sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev

    # 然后安装 VTK
    pip install vtk

    macOS 平台

    # 使用 Homebrew 安装系统依赖
    brew install python3
    brew install cmake

    # 如果使用 Apple Silicon (M1/M2) 芯片
    arch -arm64 pip install vtk

    # Intel 芯片
    pip install vtk

    验证安装

    # 基本导入测试
    python -c "import vtk; print(vtk.VTK_VERSION)"

    # 详细信息查看
    python -c "import vtk; print(f'VTK version: {vtk.VTK_VERSION}'); print(f'VTK build: {vtk.vtkVersion().GetVTKSourceVersion()}')"

    提示:pip 安装的 VTK 是预编译的二进制包,包含了大部分常用功能,但可能缺少一些高级特性或最新功能。如果需要完整功能或自定义编译选项,建议使用源码编译。

    4. 源码编译安装

    源码编译可以获得完整的功能支持,并可以根据需要自定义编译选项。

    编译环境准备

    必需工具
    • CMake 3.12+ (构建系统)
    • C++ 编译器 (GCC 4.8+, Clang 3.3+, MSVC 2017+)
    • Git (获取源码)
    • Python 开发包 (Python.h 等头文件)
    Windows 环境

    # 安装 Visual Studio Community (包含 MSVC 编译器)
    # 下载地址: https://visualstudio.microsoft.com/

    # 安装 CMake
    # 下载地址: https://cmake.org/download/

    # 安装 Git
    # 下载地址: https://git-scm.com/

    # 验证安装
    cmake –version
    git –version

    Linux 环境

    # Ubuntu/Debian
    sudo apt-get update
    sudo apt-get install build-essential cmake git
    sudo apt-get install python3-dev python3-pip
    sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
    sudo apt-get install libxt-dev libxrender-dev libxmu-dev libxmuu-dev

    # CentOS/RHEL/Fedora
    sudo yum groupinstall "Development Tools"
    sudo yum install cmake git python3-devel
    # 或者 (Fedora)
    sudo dnf install cmake git python3-devel

    macOS 环境

    # 安装 Xcode Command Line Tools
    xcode-select –install

    # 使用 Homebrew 安装依赖
    brew install cmake git python3

    # 验证安装
    cmake –version
    git –version
    python3 –version

    获取源码

    # 克隆官方仓库
    git clone https://github.com/Kitware/VTK.git
    cd VTK

    # 切换到稳定版本 (可选)
    git checkout v9.2.6

    # 查看可用版本
    git tag | grep -E "^v[0-9]+\\.[0-9]+\\.[0-9]+$" | sort -V | tail -10

    配置编译选项

    # 创建构建目录
    mkdir build
    cd build

    # 基本配置
    cmake .. \\
    -DCMAKE_BUILD_TYPE=Release \\
    -DVTK_WRAP_PYTHON=ON \\
    -DVTK_WHEEL_BUILD=ON \\
    -DPython3_EXECUTABLE=$(which python3)

    # 高级配置选项
    cmake .. \\
    -DCMAKE_BUILD_TYPE=Release \\
    -DVTK_WRAP_PYTHON=ON \\
    -DVTK_WHEEL_BUILD=ON \\
    -DPython3_EXECUTABLE=$(which python3) \\
    -DVTK_USE_TK=OFF \\
    -DVTK_GROUP_ENABLE_Qt=WANT \\
    -DVTK_GROUP_ENABLE_Imaging=YES \\
    -DVTK_GROUP_ENABLE_MPI=WANT \\
    -DVTK_SMP_IMPLEMENTATION_TYPE=TBB

    重要编译选项说明

    CMAKE_BUILD_TYPE

    编译类型:Debug(调试) / Release(发布) / RelWithDebInfo(带调试信息的发布版)

    VTK_WRAP_PYTHON

    启用Python绑定,必须设置为ON才能在Python中使用VTK

    VTK_WHEEL_BUILD

    为pip wheel包构建做优化,推荐启用

    VTK_GROUP_ENABLE_*

    控制功能模块:YES(强制启用) / WANT(可选) / NO(禁用)

    开始编译

    # 开始编译 (使用多线程加速)
    # 根据CPU核心数调整 -j 参数
    make -j$(nproc) # Linux/macOS
    # 或者
    cmake –build . –config Release -j 8 # 跨平台方式

    # Windows (使用 Visual Studio)
    cmake –build . –config Release –parallel

    注意:VTK 编译过程需要较长时间(通常30分钟到2小时),取决于硬件配置和启用的功能模块。确保有足够的磁盘空间(至少5GB)和内存。

    安装编译结果

    # 安装到系统目录
    sudo make install # Linux/macOS
    # 或者
    cmake –install . –config Release # 跨平台方式

    # 安装到虚拟环境
    cmake –install . –prefix $VIRTUAL_ENV

    # 设置环境变量 (如果需要)
    export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.x/site-packages

    创建 Python Wheel 包

    # 在构建目录中创建 wheel 包
    python setup.py bdist_wheel

    # 安装生成的 wheel 包
    pip install dist/vtk-*.whl

    # 验证安装
    python -c "import vtk; print('VTK version:', vtk.VTK_VERSION)"

    5. 依赖问题处理

    常见依赖库

    图形渲染依赖

    # Linux – OpenGL 相关
    sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev # Ubuntu/Debian
    sudo yum install mesa-libGL-devel mesa-libGLU-devel # CentOS/RHEL

    # X11 相关 (Linux 图形界面)
    sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev

    # macOS – 通常自带 OpenGL 支持
    # Windows – 通常自带 DirectX/OpenGL 支持

    可选增强依赖
    Qt 支持 (GUI 界面)

    # 安装 Qt 开发库
    sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools # Ubuntu
    pip install PyQt5 # Python Qt 绑定

    TBB 支持 (并行计算)

    # Intel Threading Building Blocks
    sudo apt-get install libtbb-dev # Ubuntu
    brew install tbb # macOS

    MPI 支持 (分布式计算)

    # OpenMPI
    sudo apt-get install libopenmpi-dev # Ubuntu
    brew install open-mpi # macOS

    Python 依赖包

    # 基础科学计算包
    pip install numpy scipy matplotlib

    # 图像处理
    pip install Pillow imageio

    # 可选增强包
    pip install jupyter notebook ipywidgets # Jupyter 支持
    pip install trame trame-vtk trame-vuetify # Web 可视化框架

    常见依赖问题解决

    问题1: ImportError: No module named 'vtk'

    原因:VTK 未正确安装或 Python 路径配置错误

    解决:

    # 检查 VTK 是否安装
    pip list | grep vtk

    # 检查 Python 路径
    python -c "import sys; print(sys.path)"

    # 重新安装
    pip uninstall vtk
    pip install vtk

    问题2: OpenGL 错误

    症状:渲染窗口无法显示或报告 OpenGL 错误

    解决:

    # Linux – 安装 OpenGL 运行库
    sudo apt-get install mesa-utils
    glxinfo | grep "OpenGL version" # 检查 OpenGL 版本

    # 虚拟环境下使用软件渲染
    export MESA_GL_VERSION_OVERRIDE=3.3
    export MESA_GLSL_VERSION_OVERRIDE=330

    问题3: Qt 相关错误

    症状:Qt 应用无法启动或界面显示异常

    解决:

    # 安装 Qt 运行库
    sudo apt-get install qt5-default # Ubuntu

    # 设置 Qt 插件路径
    export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins

    6. 安装验证

    基本功能测试

    # 测试脚本: test_vtk_basic.py
    import vtk
    import sys

    def test_vtk_installation():
    """基本 VTK 安装测试"""
    print("=== VTK 安装验证 ===")

    # 版本信息
    print(f"VTK 版本: {vtk.VTK_VERSION}")
    print(f"VTK 主版本: {vtk.VTK_MAJOR_VERSION}")
    print(f"VTK 次版本: {vtk.VTK_MINOR_VERSION}")

    # 构建信息
    version_obj = vtk.vtkVersion()
    print(f"构建版本: {version_obj.GetVTKSourceVersion()}")

    # 基本对象创建测试
    try:
    sphere = vtk.vtkSphereSource()
    mapper = vtk.vtkPolyDataMapper()
    actor = vtk.vtkActor()
    renderer = vtk.vtkRenderer()
    render_window = vtk.vtkRenderWindow()

    print("✓ 基本对象创建成功")
    return True
    except Exception as e:
    print(f"✗ 基本对象创建失败: {e}")
    return False

    if __name__ == "__main__":
    success = test_vtk_installation()
    sys.exit(0 if success else 1)

    渲染功能测试

    # 测试脚本: test_vtk_rendering.py
    import vtk

    def test_rendering():
    """测试 VTK 渲染功能"""
    # 创建球体
    sphere = vtk.vtkSphereSource()
    sphere.SetRadius(1.0)
    sphere.SetThetaResolution(30)
    sphere.SetPhiResolution(30)

    # 创建映射器
    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(sphere.GetOutputPort())

    # 创建演员
    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetColor(0.8, 0.2, 0.2) # 红色

    # 创建渲染器
    renderer = vtk.vtkRenderer()
    renderer.AddActor(actor)
    renderer.SetBackground(0.1, 0.2, 0.4) # 蓝色背景

    # 创建渲染窗口
    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(renderer)
    render_window.SetSize(800, 600)
    render_window.SetWindowName("VTK 渲染测试")

    # 创建交互器
    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(render_window)

    # 开始渲染
    render_window.Render()
    print("渲染窗口已打开,按 'q' 退出")
    interactor.Start()

    if __name__ == "__main__":
    test_rendering()

    无头渲染测试

    # 测试脚本: test_vtk_offscreen.py
    import vtk

    def test_offscreen_rendering():
    """测试离屏渲染功能(适合服务器环境)"""
    # 创建圆锥
    cone = vtk.vtkConeSource()
    cone.SetHeight(3.0)
    cone.SetRadius(1.0)
    cone.SetResolution(10)

    # 映射器和演员
    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(cone.GetOutputPort())

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    # 渲染器
    renderer = vtk.vtkRenderer()
    renderer.AddActor(actor)
    renderer.SetBackground(1, 1, 1) # 白色背景

    # 离屏渲染窗口
    render_window = vtk.vtkRenderWindow()
    render_window.SetOffScreenRendering(1) # 启用离屏渲染
    render_window.AddRenderer(renderer)
    render_window.SetSize(800, 600)

    # 渲染
    render_window.Render()

    # 捕获屏幕截图
    window_to_image = vtk.vtkWindowToImageFilter()
    window_to_image.SetInput(render_window)
    window_to_image.Update()

    # 保存为 PNG
    writer = vtk.vtkPNGWriter()
    writer.SetFileName("vtk_test_output.png")
    writer.SetInputConnection(window_to_image.GetOutputPort())
    writer.Write()

    print("离屏渲染完成,图像已保存为 vtk_test_output.png")

    if __name__ == "__main__":
    test_offscreen_rendering()

    验证成功标准:

    • 基本测试:无错误信息,显示正确的版本信息
    • 渲染测试:成功打开窗口并显示3D球体
    • 离屏测试:生成 PNG 图像文件

    7. 常见问题排查

    性能问题

    症状:渲染速度慢或帧率低

    # 检查 GPU 加速
    import vtk
    render_window = vtk.vtkRenderWindow()
    print("OpenGL 版本:", render_window.ReportCapabilities())

    # 启用多线程
    vtk.vtkObject.GlobalWarningDisplayOff() # 关闭警告
    vtk.vtkMultiThreader.SetGlobalMaximumNumberOfThreads(4)

    内存问题

    症状:处理大数据时内存不足

    # 启用数据流模式
    reader = vtk.vtkXMLImageDataReader()
    reader.SetFileName("large_dataset.vti")
    reader.Update()

    # 使用 LOD (Level of Detail) 技术
    lod_actor = vtk.vtkLODActor()
    lod_actor.SetMapper(mapper)
    lod_actor.SetNumberOfCloudPoints(1000)

    显示问题

    症状:图形显示异常或颜色错误

    # 设置图形属性
    actor.GetProperty().SetInterpolationToPhong() # 光照模式
    actor.GetProperty().SetSpecular(0.3)
    actor.GetProperty().SetSpecularPower(30)

    # 调整相机设置
    camera = renderer.GetActiveCamera()
    camera.SetPosition(0, 0, 10)
    camera.SetFocalPoint(0, 0, 0)
    camera.SetViewUp(0, 1, 0)
    renderer.ResetCamera()

    调试技巧

    # 启用 VTK 调试输出
    vtk.vtkObject.GlobalWarningDisplayOn()

    # 检查对象信息
    print(actor) # 打印对象详细信息
    mapper.PrintSelf() # 打印映射器状态

    # 内存使用监控
    import psutil
    process = psutil.Process()
    print(f"内存使用: {process.memory_info().rss / 1024 / 1024:.2f} MB")

    日志配置

    # 配置 VTK 日志输出
    logger = vtk.vtkLogger()
    logger.SetStderrVerbosity(vtk.vtkLogger.VERBOSITY_INFO)

    # Python 日志配置
    import logging
    logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s – %(levelname)s – %(message)s'
    )

    8. 示例代码

    基础3D可视化

    # 完整示例: basic_3d_visualization.py
    import vtk
    import numpy as np

    def create_basic_visualization():
    """创建基础3D可视化场景"""

    # 1. 创建多个几何对象
    # 球体
    sphere = vtk.vtkSphereSource()
    sphere.SetCenter(0, 0, 0)
    sphere.SetRadius(1.0)

    # 立方体
    cube = vtk.vtkCubeSource()
    cube.SetCenter(3, 0, 0)
    cube.SetXLength(1.5)
    cube.SetYLength(1.5)
    cube.SetZLength(1.5)

    # 圆锥
    cone = vtk.vtkConeSource()
    cone.SetCenter(-3, 0, 0)
    cone.SetHeight(2.0)
    cone.SetRadius(1.0)

    # 2. 创建映射器和演员
    objects = [
    (sphere, (1, 0.2, 0.2)), # 红色球体
    (cube, (0.2, 1, 0.2)), # 绿色立方体
    (cone, (0.2, 0.2, 1)) # 蓝色圆锥
    ]

    actors = []
    for source, color in objects:
    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(source.GetOutputPort())

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetColor(*color)
    actor.GetProperty().SetSpecular(0.3)
    actor.GetProperty().SetSpecularPower(30)

    actors.append(actor)

    # 3. 创建渲染器和窗口
    renderer = vtk.vtkRenderer()
    for actor in actors:
    renderer.AddActor(actor)

    renderer.SetBackground(0.1, 0.2, 0.4) # 深蓝色背景

    # 添加坐标轴
    axes = vtk.vtkAxesActor()
    axes.SetTotalLength(2, 2, 2)
    renderer.AddActor(axes)

    # 渲染窗口
    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(renderer)
    render_window.SetSize(1024, 768)
    render_window.SetWindowName("VTK 基础3D可视化")

    # 交互器
    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(render_window)

    # 设置相机
    camera = renderer.GetActiveCamera()
    camera.SetPosition(5, 5, 5)
    camera.SetFocalPoint(0, 0, 0)
    camera.SetViewUp(0, 0, 1)
    renderer.ResetCamera()

    # 开始渲染
    render_window.Render()
    interactor.Start()

    if __name__ == "__main__":
    create_basic_visualization()

    数据可视化示例

    # 数据可视化示例: data_visualization.py
    import vtk
    import numpy as np

    def create_data_visualization():
    """创建科学数据可视化"""

    # 1. 创建结构化网格数据
    dimensions = [20, 20, 20]

    # 创建点数据
    points = vtk.vtkPoints()
    scalars = vtk.vtkFloatArray()
    scalars.SetName("temperature")

    for k in range(dimensions[2]):
    for j in range(dimensions[1]):
    for i in range(dimensions[0]):
    x = i * 0.1
    y = j * 0.1
    z = k * 0.1

    points.InsertNextPoint(x, y, z)

    # 模拟温度场数据
    temp = np.sin(x) * np.cos(y) * np.sin(z) + \\
    np.exp(-(x-1)**2 – (y-1)**2 – (z-1)**2)
    scalars.InsertNextValue(temp)

    # 2. 创建结构化网格
    grid = vtk.vtkStructuredGrid()
    grid.SetDimensions(dimensions)
    grid.SetPoints(points)
    grid.GetPointData().SetScalars(scalars)

    # 3. 创建等值面
    contour = vtk.vtkContourFilter()
    contour.SetInputData(grid)
    contour.SetValue(0, 0.5) # 等值面值

    # 4. 映射器和演员
    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(contour.GetOutputPort())
    mapper.SetScalarRange(scalars.GetRange())

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    # 5. 创建颜色条
    scalar_bar = vtk.vtkScalarBarActor()
    scalar_bar.SetLookupTable(mapper.GetLookupTable())
    scalar_bar.SetTitle("Temperature")
    scalar_bar.SetNumberOfLabels(5)

    # 6. 渲染设置
    renderer = vtk.vtkRenderer()
    renderer.AddActor(actor)
    renderer.AddActor2D(scalar_bar)
    renderer.SetBackground(1, 1, 1) # 白色背景

    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(renderer)
    render_window.SetSize(1024, 768)
    render_window.SetWindowName("VTK 数据可视化")

    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(render_window)

    # 开始渲染
    render_window.Render()
    interactor.Start()

    if __name__ == "__main__":
    create_data_visualization()

    图像处理示例

    # 图像处理示例: image_processing.py
    import vtk
    import numpy as np

    def create_image_processing_demo():
    """VTK 图像处理演示"""

    # 1. 创建测试图像
    image = vtk.vtkImageData()
    image.SetDimensions(256, 256, 1)
    image.SetSpacing(1.0, 1.0, 1.0)
    image.SetOrigin(0.0, 0.0, 0.0)
    image.AllocateScalars(vtk.VTK_UNSIGNED_CHAR, 1)

    # 填充图像数据
    dims = image.GetDimensions()
    for y in range(dims[1]):
    for x in range(dims[0]):
    # 创建同心圆图案
    cx, cy = dims[0]//2, dims[1]//2
    distance = np.sqrt((x-cx)**2 + (y-cy)**2)
    value = int(127 * (1 + np.sin(distance * 0.1)))
    image.SetScalarComponentFromFloat(x, y, 0, 0, value)

    # 2. 图像滤波
    # 高斯模糊
    gaussian = vtk.vtkImageGaussianSmooth()
    gaussian.SetInputData(image)
    gaussian.SetStandardDeviations(2.0, 2.0, 0.0)

    # 边缘检测
    gradient = vtk.vtkImageGradientMagnitude()
    gradient.SetInputConnection(gaussian.GetOutputPort())

    # 3. 创建显示窗口
    # 原始图像
    actor1 = vtk.vtkImageActor()
    actor1.GetMapper().SetInputData(image)
    actor1.SetPosition(0, 0, 0)

    # 处理后图像
    actor2 = vtk.vtkImageActor()
    actor2.GetMapper().SetInputConnection(gradient.GetOutputPort())
    actor2.SetPosition(300, 0, 0)

    # 渲染器
    renderer = vtk.vtkRenderer()
    renderer.AddActor(actor1)
    renderer.AddActor(actor2)
    renderer.SetBackground(0.5, 0.5, 0.5)

    # 设置相机为正交投影
    camera = renderer.GetActiveCamera()
    camera.ParallelProjectionOn()
    renderer.ResetCamera()

    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(renderer)
    render_window.SetSize(800, 400)
    render_window.SetWindowName("VTK 图像处理演示")

    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(render_window)

    render_window.Render()
    interactor.Start()

    if __name__ == "__main__":
    create_image_processing_demo()

    运行示例:

    将上述代码保存为 .py 文件,在安装了 VTK 的 Python 环境中运行即可看到效果。这些示例涵盖了 VTK 的主要功能领域,可以作为进一步开发的基础。

    © 2024 VTK Python 开发环境配置指南 | 基于 VTK 9.x 版本编写

    参考资源: VTK 官网 | VTK 文档 | GitHub 仓库

    赞(0)
    未经允许不得转载:171主机测评 » VTK Python 开发环境配置完整指南 详细介绍pip安装与源码编译部署VTK,解决常见依赖问题
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址