torch.cuda.is_available() 在 PyCharm 项目内返回 True,在 Terminal 项目外返回 False

问题描述 投票:0回答:1

我已经使用

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
命令安装了最新的支持 cuda 的 pytorch。

当我在终端上运行我的项目并激活 conda 环境时,它返回

torch.cuda.is_available()
返回 False 并导致错误。

通过终端

(pytesseract) cvpr@cvprlab:/media/cvpr/CM_1/doctr-main/references/recognition$ python3
Python 3.9.16 (main, Jan 11 2023, 16:05:54) 
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.zeros(1).cuda()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/cvpr/anaconda3/envs/pytesseract/lib/python3.9/site-packages/torch/cuda/__init__.py", line 247, in _lazy_init
    torch._C._cuda_init()
RuntimeError: No CUDA GPUs are available

但是,当我在 PyCharm 中(在同一环境中)运行该项目时,它返回 True。我在下面添加屏幕截图。

PyCharm 项目

python pytorch conda torch
1个回答
0
投票

在 PyCharm 中,环境变量和路径设置由 IDE 管理,当您为项目选择 Python 解释器时,它会自动设置必要的配置。当您选择 conda 环境作为解释器时,PyCharm 会自动从激活的环境中加载环境变量,如果环境设置正确,其中包括 CUDA 库的必要路径。

另一方面,当通过终端运行项目时,环境变量和路径设置取决于您的 shell 的配置,例如您的 ~/.bashrc 或 ~/.bash_profile 文件。如果这些配置设置不正确,您可能会遇到这个问题。

既然你提到 PyCharm 中没有出现这个问题,这表明环境变量和路径设置在 IDE 中可能是正确的。问题似乎出在终端环境上,它可能没有适合您的 conda 环境和 CUDA 库的正确路径或设置。

PyCharm 在运行终端时可能使用完整的系统路径,而您的常规终端可能使用用户路径。

为了验证这一点,您可以在常规终端和 PyCharm 的终端中检查环境变量:

echo $PATH
echo $LD_LIBRARY_PATH

如果路径存在差异,特别是与 CUDA 相关的路径,请将必要的路径添加到您的 ~/.bashrc(或等效)文件中:

export PATH=/usr/local/cuda/bin:$PATH #May be different for you so check
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH #May be different for you so check

然后重新加载终端设置:

source ~/.bashrc

然后在终端再次测试torch.cuda.is_available():

python -c "import torch; print(torch.cuda.is_available())"

如果它仍然返回“False”,请检查您的 GPU 驱动程序,他们可能需要重新安装和/或尝试重新安装您的 conda 环境

© www.soinside.com 2019 - 2024. All rights reserved.