admin 管理员组

文章数量: 1088108

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!
  
📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位一线资深架构师和工程师多年实战经验沉淀,提炼出多种经过验证的高可行性解决方案,供开发者们参考与借鉴。
  
欢迎 关注、收藏并订阅本专栏,持续更新的干货内容将与您同行,让我们携手精进,技术跃迁,步步高升!

全文目录:

    • 📢 问题描述
    • 📣 请知悉:如下方案不保证一定适配你的问题!
      • ✅️问题理解
      • ✅️问题分析
      • ✅️问题解决方案
        • 1. 确保安装了完整的 Visual Studio C++ Build Tools
          • 步骤 1:检查并安装 C++ Build Tools
          • 步骤 2:安装 CMake(如果尚未安装)
        • 2. 检查 CUDA 版本与 PyTorch 兼容性
          • 步骤 1:检查 PyTorch 和 CUDA 版本兼容性
          • 步骤 2:重新安装合适的版本
        • 3. 确保文件路径和依赖正确
          • 步骤 1:使用 `--add-data` 参数确保文件包含
          • 步骤 2:修改 `setup.py` 文件
        • 4. 检查环境变量
        • 5. 清理并重新安装
        • 6. 手动安装其他缺失的依赖项
        • 7. 使用 `--no-build-isolation` 参数
      • ✅️问题延伸
      • ✅️问题预测
      • ✅️小结
    • 🧧🧧 文末福利,等你来拿!🧧🧧
    • 🫵 Who am I?

📢 问题描述

问题来源:https://ask.csdn/questions/8505403

问题描述:(3DGS)pip install diff-gaussian- rasterization报错,本人在配置3DGS的环境,下载了vs 2019,安装了cuda118,但还是报错,一直找不到原因:

(3dgs) C:\Users\Jian\Desktop\research\3DGS\gaussian-splatting\submodules\diff-gaussian-rasterization-main>pip install .
Processing c:\users\jian\desktop\research\3dgs\gaussian-splatting\submodules\diff-gaussian-rasterization-main
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: diff_gaussian_rasterization
  DEPRECATION: Building 'diff_gaussian_rasterization' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'diff_gaussian_rasterization'. Discussion can be found at https://github.com/pypa/pip/issues/6334
  Building wheel for diff_gaussian_rasterization (setup.py) ... error
  error: subprocess-exited-with-error
 
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build\lib.win-amd64-cpython-310\diff_gaussian_rasterization
      copying diff_gaussian_rasterization\__init__.py -> build\lib.win-amd64-cpython-310\diff_gaussian_rasterization
      running build_ext
      error: [WinError 2] 系统找不到指定的文件。
      [end of output]
 
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for diff_gaussian_rasterization
  Running setup.py clean for diff_gaussian_rasterization
Failed to build diff_gaussian_rasterization
ERROR: Failed to build installable wheels for some pyproject.toml based projects (diff_gaussian_rasterization)

该安装的都装了,每一步都是跟着教程来,也重试了两三遍,尝试各种解决办法,但就是每次都最终卡在这个报错。

(3dgs) C:\Users\Jian\Desktop\research\3DGS\gaussian-splatting\submodules\diff-gaussian-rasterization-main>cl
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.29.30159版权所有(C) Microsoft Corporation。保留所有权利。
 
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]
 
(3dgs) C:\Users\Jian\Desktop\research\3DGS\gaussian-splatting\submodules\diff-gaussian-rasterization-main>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

📣 请知悉:如下方案不保证一定适配你的问题!

  如下是针对上述问题进行专业角度剖析答疑,不喜勿喷,仅供参考:

✅️问题理解

你在安装 diff-gaussian-rasterization 包时,遇到了以下错误:

error: [WinError 2] 系统找不到指定的文件

该错误通常与 C++ 编译工具的配置问题或文件路径错误有关。你已经安装了 Visual Studio 2019CUDA 11.8,并且在命令行中成功使用了 clnvcc。但是,在运行 pip install 时,安装过程依旧失败。这表明即使有必要的编译工具,系统可能没有正确找到所需的文件或工具,导致编译失败。

✅️问题分析

根据错误提示,问题出在构建过程中的某个文件或工具没有找到。这通常与以下几个方面相关:

  1. 缺少编译工具
    虽然你安装了 Visual Studio 2019CUDA 11.8,但是可能没有安装正确的 C++ 编译工具或构建工具链。特别是 CMakeC++ Build Tools 可能没有正确安装,或者没有添加到系统路径。

  2. 文件路径问题
    在构建 C++ 扩展时,程序可能无法正确找到资源文件或工具文件。如果路径配置错误或文件未正确传递,安装过程就会失败。

  3. PyInstaller 配置错误
    打包工具可能没有正确处理依赖项的路径,导致编译过程中缺少一些必要的文件。

  4. CUDA 版本与 PyTorch 兼容性问题
    如果你的环境中涉及 PyTorch 或其他深度学习库,CUDA 的版本需要与这些库兼容。版本不匹配会导致 CUDA 相关的编译问题。

✅️问题解决方案

为了解决这个问题,可以按照以下步骤逐一排查和修复:

1. 确保安装了完整的 Visual Studio C++ Build Tools

虽然你已经安装了 Visual Studio 2019,但为了编译 C++ 扩展,需要确保安装了 C++ Build ToolsWindows SDK。这两个组件是用来编译 C++ 扩展的基础工具。

步骤 1:检查并安装 C++ Build Tools
  1. 打开 Visual Studio Installer

  2. 在安装选项中,选择 Desktop development with C++

  3. 确保安装了 MSVC (Microsoft C++ Compiler)Windows SDK

    • 如果你在安装过程中没有选择这些选项,可以重新启动安装程序并添加这些组件。
    • 这些组件包含了你需要的编译器和库,确保 C++ 项目能够顺利构建。
步骤 2:安装 CMake(如果尚未安装)

CMake 是用于管理跨平台 C++ 项目的构建工具。如果缺少 CMake,构建 C++ 项目会失败。

  1. 下载并安装最新版本的 CMake:访问 CMake 官网。

  2. 安装后,确保 CMake 被添加到系统的 PATH 环境变量中。你可以通过以下命令验证:

    cmake --version
    

    如果正确安装,系统会返回 CMake 的版本号。

2. 检查 CUDA 版本与 PyTorch 兼容性

你提到安装了 CUDA 11.8,但是你可能需要确保 PyTorch(或者其他深度学习库)与 CUDA 的版本兼容。安装时,如果 CUDA 版本不匹配,可能会导致相关库的编译错误。

步骤 1:检查 PyTorch 和 CUDA 版本兼容性

访问 PyTorch 官网 ,确保所安装的 CUDA 版本PyTorch 兼容。如果版本不匹配,可能需要安装不同版本的 CUDA 或 PyTorch。

例如,PyTorch 1.12 需要 CUDA 11.3,PyTorch 1.10 支持 CUDA 10.2 和 CUDA 11.1,确保你所安装的版本相互兼容。

步骤 2:重新安装合适的版本

如果你发现 PyTorchCUDA 版本不兼容,建议使用以下命令重新安装匹配的版本:

pip install torch==<compatible_version>+cu11x

这里的 <compatible_version> 需要根据你安装的 CUDA 版本来替换。可以参考 PyTorch 官网的安装指南。

3. 确保文件路径和依赖正确

编译时,PyInstaller 或构建工具可能需要正确的路径配置,确保所有必需的文件都被正确包含在内。此时,检查并调整 setup.pyCMakeLists.txt 文件中的路径配置至关重要。

步骤 1:使用 --add-data 参数确保文件包含

如果你使用 PyInstaller 进行打包,确保在打包命令中包含了所有的资源文件。例如,确保包含了 stringBundle.py 和其他必需的资源文件:

pyinstaller --onefile --add-data "path_to_resource_file;." PPOCRLabel.py
步骤 2:修改 setup.py 文件

如果你在运行 setup.py 进行构建时遇到问题,可以手动检查 setup.py 文件,确保将所有依赖项添加到 ext_modules 或其他构建步骤中。例如:

from setuptools import setup, Extension

extension = Extension(
    'my_extension',
    sources=['src/my_extension.c'],
    libraries=['mylib'],  # 如果依赖外部库,确保将其链接
)

setup(
    name='my_package',
    version='0.1',
    ext_modules=[extension],
)

确保所有必要的库和资源都已经正确配置并包含在 setup.py 中。

4. 检查环境变量

确保 CUDAVisual Studio 安装路径已正确设置为系统的环境变量。可以通过以下命令检查:

echo %PATH%  # 在 Windows 上查看系统的 PATH 环境变量

确保以下路径被包含:

  • CUDAC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
  • Visual StudioC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\<version>\bin
5. 清理并重新安装

如果以上步骤仍然无法解决问题,可以尝试清理并重新安装所有依赖项,尤其是 Python 包C++ 编译工具

pip uninstall diff-gaussian-rasterization
pip install --no-cache-dir diff-gaussian-rasterization

这将删除已安装的包并强制重新下载并安装。

6. 手动安装其他缺失的依赖项

检查是否有遗漏的依赖库或模块,确保它们都已正确安装。例如,使用以下命令检查缺少的依赖项并安装:

pip install -r requirements.txt  # 如果项目中有 requirements.txt 文件
pip install cmake wheel          # 安装 CMake 和 Wheel
7. 使用 --no-build-isolation 参数

有时 pip 使用隔离构建环境来安装包,而这可能会导致问题。你可以尝试禁用构建隔离:

pip install . --no-build-isolation

禁用隔离后,pip 将使用当前环境来构建包,可能解决构建问题。

✅️问题延伸

  1. Windows 和 Linux 环境差异

    • Windows 上编译时,可能需要额外的配置步骤(如安装 Visual Studio C++ Build ToolsCMake),而 Linux 系统通常预装了这些工具。因此,在不同操作系统上,编译过程可能会有所不同。
  2. PyTorch 与 CUDA 的兼容性

    • 确保你安装的 PyTorchCUDA 版本兼容。特别是在升级或安装新版本时,不同版本之间可能存在不兼容问题。
  3. 版本控制和依赖

    • 使用 虚拟环境(如 condavenv)来隔离依赖项,避免库版本冲突。在虚拟环境中安装和管理库,有助于减少因版本不兼容导致的问题。
  4. CMake 配置

    • 如果项目涉及 C++ 编译,确保 CMakeLists.txt 配置正确。CMake 是一个非常强大的工具,可以帮助你管理跨平台的构建配置。

✅️问题预测

  • 编译工具问题:如果问题是由于编译工具未正确安装或配置引起的,安装或更新 Visual Studio C++ Build ToolsCMake 后,问题应该能够解决。
  • 路径问题:如果问题出现在路径配置上,检查并确保编译工具和依赖项的路径正确,特别是在打包过程中。

✅️小结

你的安装失败问题可能是由于 C++ 编译工具CUDA 版本路径配置 等原因导致的。通过安装和配置正确的 Visual Studio C++ Build ToolsCMake,并确保 CUDAPyTorch 版本兼容,可以解决大部分编译问题。确保在打包时,所有依赖的资源文件都被正确包含,并通过合适的命令(如 --add-data)进行处理。如果问题仍然存在,检查详细的错误日志和调试信息,进一步定位问题。

  希望如上措施及解决方案能够帮到有需要的你。

  PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

  若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。

🧧🧧 文末福利,等你来拿!🧧🧧

  如上问题有的来自我自身项目开发,有的收集网站,有的来自读者…如有侵权,立马删除。再者,针对此专栏中部分问题及其问题的解答思路或步骤等,存在少部分搜集于全网社区及人工智能问答等渠道,若最后实在是没能帮助到你,还望见谅!并非所有的解答都能解决每个人的问题,在此希望屏幕前的你能够给予宝贵的理解,而不是立刻指责或者抱怨!如果你有更优解,那建议你出教程写方案,一同学习!共同进步。

  ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏《全栈Bug调优(实战版)》,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。

码字不易,如果这篇文章对你有所帮助,帮忙给 bug菌 来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

🫵 Who am I?

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云多年度十佳博主,掘金多年度人气作者Top40,掘金等各大社区平台签约作者,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 30w+;更多精彩福利点击这里;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿。

-End-

本文标签: 报错 install pip DGS rasterization