PyTorch与LibTorch是否无法同时安装?LD_LIBRARY_PATH配置致导入torch段错误
问题根本原因
你遇到的冲突不是PyTorch和LibTorch无法同时安装,是环境配置逻辑有误:
- 你全局写入
LD_LIBRARY_PATH的LibTorch是CPU版本的nightly开发版,和你已安装的1.9.0+cu111 CUDA版PyTorch版本完全不匹配、运行架构也不一致 - 全局配置
LD_LIBRARY_PATH会让系统加载动态库时优先扫描你添加的LibTorch路径,Python导入torch时会错误加载LibTorch下的同名动态库,版本/架构不匹配直接触发段错误
最优解决方案(无需修改全局环境变量)
不要把LibTorch路径写入全局的~/.bashrc,编译C++ LibTorch项目时通过编译参数指定运行时动态库搜索路径即可,完全不影响Python的PyTorch使用:
使用CMake编译LibTorch项目时,添加以下两个参数即可:
cmake .. -DCMAKE_PREFIX_PATH=/home/user/.dev_libraries/libtorch \ -DCMAKE_INSTALL_RPATH=/home/user/.dev_libraries/libtorch/lib \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
编译出的二进制文件会自带LibTorch动态库的搜索路径,运行时不需要依赖全局LD_LIBRARY_PATH配置。
替代临时方案
如果你习惯用环境变量控制,可以在~/.bashrc中添加专属别名,仅在需要使用LibTorch的终端中临时生效:
# 仅在~/.bashrc添加以下别名,不要全局导出LD_LIBRARY_PATH alias activate-libtorch='export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/.dev_libraries/libtorch/lib/'
需要开发LibTorch时,在当前终端执行activate-libtorch即可,关闭终端后配置自动失效,其他终端的Python PyTorch使用完全不受影响。
额外优化建议
你当前的LD_LIBRARY_PATH存在重复路径、空路径(两个连续冒号)的问题,也可以顺带整理减少不必要的路径扫描。
内容的提问来源于stack exchange,提问作者ihdv
相关产品推荐
相关产品推荐

