安装PyTorch3D失败疑因C++编译器问题求助
安装PyTorch3D失败的排查与解决
在Windows环境下安装PyTorch3D时持续编译失败,核心问题集中在C++编译器环境配置错误,具体错误日志如下:
核心编译错误日志
FAILED: C:/Users/Virtual Machine/AppData/Local/Temp/pip-req-build-fu0xd6su/build/temp.win-amd64-cpython-310/Release/Users/Virtual Machine/AppData/Local/Temp/pip-req-build-fu0xd6su/pytorch3d/csrc/point_mesh/point_mesh_cpu.obj cl /showIncludes /nologo /O2 /W3 /GL /DNDEBUG /MD /MD /wd4819 /wd4251 /wd4244 /wd4267 /wd4275 /wd4018 /wd4190 /EHsc "-IC:\Users\Virtual Machine\AppData\Local\Temp\pip-req-build-fu0xd6su\pytorch3d\csrc" "-IC:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\include" "-IC:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\include\torch\csrc\api\include" "-IC:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\include\TH" "-IC:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\include\THC" "-IC:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\include" "-IC:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\Include" -c "C:\Users\Virtual Machine\AppData\Local\Temp\pip-req-build-fu0xd6su\pytorch3d\csrc\point_mesh\point_mesh_cpu.cpp" /Fo"C:\Users\Virtual Machine\AppData\Local\Temp\pip-req-build-fu0xd6su\build\temp.win-amd64-cpython-310\Release\Users\Virtual Machine\AppData\Local\Temp\pip-req-build-fu0xd6su\pytorch3d\csrc\point_mesh\point_mesh_cpu.obj" -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 /std:c++14 cl : Command line warning D9002 : ignoring unknown option '-std=c++14' C:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\include\c10/macros/Macros.h(3): fatal error C1083: Cannot open include file: 'cassert': No such file or directory ninja: build stopped: subcommand failed.
Ninja编译错误日志
File "C:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\build_ext.py", line 246, in build_extension _build_ext.build_extension(self, ext) File "C:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\_distutils\command\build_ext.py", line 547, in build_extension objects = self.compiler.compile( File "C:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\utils\cpp_extension.py", line 815, in win_wrap_ninja_compile _write_ninja_file_and_compile_objects( File "C:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\utils\cpp_extension.py", line 1573, in _write_ninja_file_and_compile_objects _run_ninja_build( File "C:\Users\Virtual Machine\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\utils\cpp_extension.py", line 1916, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error compiling objects for extension [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> pytorch3d
解决方案
1. 修复Visual Studio环境配置
- 安装Visual Studio 2019或2022,必须勾选「Desktop development with C++」工作负载,同时确保安装了对应的「Windows SDK」组件(建议选最新稳定版)
- 打开「x64 Native Tools Command Prompt for VS 20xx」,在该命令行窗口中执行PyTorch3D的安装命令,确保编译器的环境变量(如头文件路径、库路径)被正确加载
2. 解决编译参数冲突
编译脚本同时传递了GCC风格的-std=c++14和MSVC风格的/std:c++14,导致MSVC报错。可通过以下方式处理:
- 设置环境变量强制使用MSVC标准参数:
set CXXFLAGS="/std:c++14" - 或者直接在pip安装时指定编译选项:
pip install pytorch3d --no-cache-dir --global-option="build_ext" --global-option="/std:c++14"
3. 优先使用预编译包(推荐)
避免源码编译的繁琐,直接安装匹配当前PyTorch和Python版本的预编译包:
例如,针对PyTorch 2.0 + Python 3.10 + CUDA 11.8的Windows环境:
pip install pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py310_cu118_torch200/download.html
注意:需根据自身PyTorch版本、Python版本、CUDA版本替换链接中的对应参数(如py310对应Python3.10,cu118对应CUDA11.8,torch200对应PyTorch2.0)
内容的提问来源于stack exchange,提问作者Sai Veeramachaneni
相关产品推荐
相关产品推荐

