今天遇到一个bug:
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [20 lines of output]
No CUDA runtime is found, using CUDA_HOME=':/usr/local/cuda-11.8'
大概就是说,我这个cuda运行时是没有找到的,但是我去目录里面找了,确实是存在的。
朝下翻看一下Traceback记录,说是我没有这样的cuda目录:
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: ':/usr/local/cuda-11.8/bin/nvcc'
上网搜了一下,也没有准确的解决办法 ,有的只是一些很泛泛的解决办法!
看这架势,不是仨核桃俩枣能解决的事了。他既然说我这个目录找不到,那我是不是真的没有呢?先来一条命令探探虚实:
nvcc -V
于是看到了这样的结果:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
也就是说,我是有cuda的,但是运行时候没找到,那是不是路径不对呢?
再来一条命令继续试探:
which nvcc
看到了以下的结果:
/usr/local/cuda-11.8/bin/nvcc
绝了,这和报错的文件路径是一样的呀!怎么可能找不到呢?难道是路径前面的冒号?
这样想不是没有道理,但也太没有工程思想了,我检讨。那为什么系统会找不到呢?
打开google,搜索问题,跳到了github的issues部分,正好看到了和我类似的问题:
只不过系统和nvcc版本不一样,但是感觉应该是通着的,再往下看follower,有很多类似的问题,看到大家都遇到了这样的问题,我就放心了。
正好其中一个人给出了一种解决办法:
export CUDA_HOME=/usr/local/cuda
我也运行了一下,果然解决!好评!
这个问题很可能与那种【运行nvcc但是报错说找不到命令】的情况类似,就是在配置NVCC环境的时候出了问题,再说的清楚一点就是,配置CUDA_Home的时候出了问题。
那有的人可能就问了:
我明明配置了呀,却还是找不到!
or
你也配了,而且nvcc - V 以及 which nvcc都运行正常啊!但不还是找不到!
针对这两个问题,我给出这样的思路,看能不能解决大家的问题:
可以先看一下自己配置的有没有cuda这个文件目录下,按理说,各位博主都是按照cuda目录下去教的,所以大家配置完成之后,运行nvcc和which nvcc应该都不会有问题。
其次,如果没有配置在这个文件目录下,那就在运行一下上面提到的export命令,不要太反骨(我意思是不要像我一样),因为我就是配置在了cuda11.8下面,而非cuda下面,这个很重要。
如果上面的这两步都做了,但是还没有解决,那可以来issues看看:FileNotFoundError: [Errno 2] No such file or directory: ':/usr/local/cuda:/usr/local/cuda-10.1/bin/nvcc':https://github.com/NVIDIA/apex/issues/368 在issues里还有其他更专业的解决办法,希望可以帮到你。
最近遇到了很多新鲜的问题,并且在csdn上和百度上没有找到合适的解决办法,在接下来的时间,会一点点分享出来,希望可以帮助到大家。大家有什么问题也欢迎和我交流。