Attributeerror: module ‘torch._c‘ has no attribute ‘doublestoragebase‘

本文描述了在实验室服务器的VSCode环境中遇到的错误,与SSH环境对比发现PATH设置差异。问题在于VSCode启动时只加载~/.bashrc,未激活所需环境配置。解决方案是在VSCode的.bashrc中添加source/etc/profile.d/sothisai.sh以同步容器系统配置。

声明:本文章仅对实验室服务器出现的错误,并不是通用错误。


问题说明:

        相同的环境,在ssh中运行时不会报错:

        

        在vscode中运行时,会出现错误:

问题分析

在vscode中,echo $PATH:
/home/yuchunan/anaconda3/envs/VR_Sketch/bin:/home/yuchunan/anaconda3/condabin:/usr/local/nvm/versions/node/v16.15.1/bin:/usr/lib/code-server/lib/vscode/bin/remote-cli:/usr/local/lib/python3.8/dist-packages/torch_tensorrt/bin:/usr/local/mpi/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ucx/bin:/opt/tensorrt/bin:/home/yuchunan/.local/bin:/home/yuchunan/bin

在ssh中,echo $PATH:
/home/yuchunan/anaconda3/envs/VR_Sketch/bin:/home/yuchunan/anaconda3/condabin:/usr/local/mpi/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ucx/bin:/opt/tensorrt/bin:/home/yuchunan/.local/bin:/home/yuchunan/bin

说明(仅个人理解)

首先明确我们的path写在容器系统的配置文件中(/etc/profile.d/sothisai.sh),当打开ssh界面时容器系统会自动运行(/etc/profile.d/sothisai.sh)(~/.bashrc)两个文件,从而更新你的path地址。

但是在vscode中,当打开时,系统只会运行(~/.bashrc)文件,但是环境配置都是写在(/etc/profile.d/sothisai.sh)文件中,因此在打开时并未激活你所需要的路径。

解决 

1. 打开vs code,在终端中运行vim ~/.bashrc

2. 

在里面写上

                        source /etc/profile.d/sothisai.sh

使得vscode 打开时运行.bashrc的同时也将容器系统配置文件运行。

检验:

当遇到 `AttributeError: module 'torch._C._sparse' has no attribute '_spsolve'` 错误,通常是由于以下几种原因导致的,以下是对应的解决方法: ### 1. PyTorch 版本问题 `_spsolve` 这个属性可能在某些旧版本或者新版本的 PyTorch 中不存在。可以尝试更新或回退 PyTorch 版本。 #### 更新 PyTorch 如果使用的是 Conda 环境,可以使用以下命令更新 PyTorch: ```bash conda update pytorch torchvision torchaudio -c pytorch ``` 如果使用的是 pip,可以使用以下命令: ```bash pip install --upgrade torch torchvision torchaudio ``` #### 回退 PyTorch 版本 如果更新后出现问题,可以尝试回退到之前稳定的版本。例如,回退到 1.10.0 版本: ```bash pip install torch==1.10.0 torchvision==0.11.1 torchaudio==0.10.0 ``` ### 2. 检查导入和命名空间问题 确保代码中没有意外覆盖了 `torch._C._sparse` 模块。检查代码中是否有类似以下的错误: ```python import torch._C._sparse as something_else # 后续代码可能会导致使用错误的命名空间 ``` ### 3. 替代方法 如果 `_spsolve` 已经被弃用或者不再支持,可以寻找替代的方法来实现相同的功能。例如,使用 `torch.linalg.solve` 或 `torch.sparse.linalg` 中的函数。 ```python import torch # 示例稀疏矩阵和向量 A = torch.sparse_coo_tensor( indices=torch.tensor([[0, 0], [1, 1]]), values=torch.tensor([1., 2.]), size=(2, 2) ) b = torch.tensor([1., 2.]) # 尝试使用替代方法 # 先将稀疏矩阵转换为密集矩阵 A_dense = A.to_dense() x = torch.linalg.solve(A_dense, b) print(x) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值