一、背景
最近我的tensorflow版本更新之后就出现了问题,而且报错也非常模糊的一句话:DLL load failed: 找不到指定的模块。这里先说一下我的环境:
win10 + pycharm
anaconda3 (python3.6)
tensorflow1.9
二、问题描述
本来自己的tensorflow版本是1.9,用了快一年,一直没什么问题。后来看到tensorflow的版本更新到了1.12,想着就更新一下吧,不过更新过后,再导入tensorflow就报错了。之后即使把tensorflow版本再降低到1.2也仍然报错:
当import tensorflow时,就会有报错提示:
D:\python\anaconda\python.exe D:*****.py
Traceback (most recent call last):
File "D:\python\anaconda\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "D:\python\anaconda\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "D:\python\anaconda\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "D:\python\anaconda\lib\imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "D:\python\anaconda\lib\imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:/python/item/64-MARTAGAN/train_marta_gan.py", line 7, in <module>
import tensorflow as tf
File "D:\python\anaconda\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "D:\python\anaconda\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "D:\python\anaconda\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "D:\python\anaconda\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "D:\python\anaconda\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "D:\python\anaconda\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "D:\python\anaconda\lib\imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "D:\python\anaconda\lib\imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/errors
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
Process finished with exit code 1
我的错误提示是中文的:DLL load failed: 找不到指定的模块;当然相应的英文提示为:DLL load failed: The specified module could not be found。
三、解决方法
这个问题比较新,网上目前的解决方案比较少,经过一番查找,终于在github上找到和我类似问题的帖子了,先给出链接:https://github.com/tensorflow/tensorflow/issues/25597,下面再详细介绍。
贴主的情况和我类似,先给出贴主的环境:
可以看到贴主也是更新tensorflow版本到1.12,然后才遇到了这个问题。然后贴主还在下面详细介绍了自己配置环境的过程,并提到了使用CUDA9.2和CUDA10.0版本仍会出现这样的错误。
针对这个问题,有人提出,安装CUDA9.0:
然后贴主将他的环境重新配置为了CUDA9.0和cuDNN7.05
关于如何查看自己的CUDA版本,可以打开cmd,在cmd里面输入nvcc --version即可查看:
这里给出一些我试过的方法,不过都没有解决问题:
(1)安装其他版本的CUDA。然而没有解决问题。。。。
(2)更新VS2015,参考博客:tensorflow安装问题和github。然而也没有解决问题。。。
(3)继续翻github上的帖子,发现后面很多人都在感谢层主 fo40255,就是上面(2)的层主留言,重新安装.whl文件,不过我没有尝试这个方法,后面会提到我的方法,下面随便摘了一段回帖:
最后总结一下我自己解决这个问题的方法:
(1)打开cmd,输入pip uninstall tensorflow,也就是卸载tensorflow。
(2)卸载完成之后再重新安装,输入pip install tensorflow。
(3)安装好之后再简单测试一下,没有报错。简而言之,坏了就重装。。。。(反正自己就是这么重新弄好了)
当然了,如果重新安装不能解决问题的话,可以考虑上面 fo40255层主提出的方法,重新覆盖.whl文件,该文件的链接这里也顺便给出吧:https://github.com/fo40225/tensorflow-windows-wheel/tree/master/1.6.0/py36/CPU/sse2