导入tensorflow-gpu 1.8.0遇DLL加载失败及模块缺失错误求助
解决TensorFlow-GPU 1.8.0导入时的DLL加载失败问题
你之前用TensorFlow 1.4.1搭配CUDA 8.0和cuDNN 5.1运行一切正常,为了安装Tensorforce升级到TensorFlow-GPU 1.8.0后,却遇到了导入报错的问题。结合我处理类似问题的经验,给你整理了以下内容和针对性解决方案:
当前环境配置
- 操作系统:Windows 10
- TensorFlow版本:
tensorflow-gpu==1.8.0 - CUDA Toolkit版本:9.0
- cuDNN版本:7.0.5(也曾尝试7.1)
- Python环境:基于Python 3.6.3的conda虚拟环境
- 安装命令:
pip install --ignore-installed --upgrade tensorflow-gpu
报错堆栈信息
Traceback (most recent call last): File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper return importlib.import_module(mname) File "C:\Users\User\Anaconda3\envs\tensorflow\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 658, in _load_unlocked File "<frozen importlib._bootstrap>", line 571, in module_from_spec File "<frozen importlib._bootstrap_external>", line 922, in create_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed ImportError: DLL load failed: Не найден указанный модуль. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 41, in <module> from tensorflow.python.pywrap_tensorflow_internal import * File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 21, in <module> _pywrap_tensorflow_internal = swig_import_helper() File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 20, in swig_import_helper return importlib.import_module('_pywrap_tensorflow_internal') File "C:\Users\User\Anaconda3\envs\tensorflow\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ModuleNotFoundError: No module named '_pywrap_tensorflow_internal' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 24, in <module> from tensorflow.python import * File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\__init__.py", line 51, in <module> from tensorflow.python import pywrap_tensorflow File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 52, in <module> raise ImportError(msg) ImportError: Traceback (most recent call last): File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper return importlib.import_module(mname) File "C:\Users\User\Anaconda3\envs\tensorflow\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 658, in _load_unlocked File "<frozen importlib._bootstrap>", line 571, in module_from_spec File "<frozen importlib._bootstrap_external>", line 922, in create_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed ImportError: DLL load failed: Не найден указанный модуль. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\User\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 41, in <module> from tensorflow.python.pywrap_tensorflow_internal import * Fi
针对性排查与解决方案
我之前处理过不少类似的TensorFlow DLL加载失败问题,结合你的情况,推荐你按以下步骤逐一排查:
确认CUDA与cuDNN的路径配置和文件复制
- 先检查系统环境变量
PATH,确保CUDA 9.0的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64这三个路径已经添加,并且要放在旧版本CUDA的路径前面,避免系统调用旧版本的库文件。 - 再核对cuDNN的文件是否正确复制到CUDA目录:
- 将cuDNN压缩包中
bin文件夹的.dll文件复制到CUDA 9.0的bin目录 include文件夹的.h文件复制到CUDA 9.0的include目录lib\x64文件夹的.lib文件复制到CUDA 9.0的lib\x64目录
- 将cuDNN压缩包中
- 完成后重启电脑,让环境变量生效。
- 先检查系统环境变量
安装正确版本的VS2015运行库
- 你提到安装了VS2015,但TensorFlow 1.8需要的是Microsoft Visual C++ 2015 Redistributable Update 3的x64版本,而不是VS2015 IDE本身。安装对应版本后重启电脑再测试导入。
创建全新的conda虚拟环境
- 旧环境可能残留了和TensorFlow 1.8冲突的依赖,试试创建干净的环境:
conda create -n tf18_env python=3.6.3 conda activate tf18_env pip install tensorflow-gpu==1.8.0 - 尽量只用pip安装TensorFlow,不要混合conda和pip,避免依赖版本混乱。
- 旧环境可能残留了和TensorFlow 1.8冲突的依赖,试试创建干净的环境:
检查GPU驱动兼容性
- TensorFlow 1.8.0搭配CUDA 9.0要求GPU驱动版本至少为384.81,你可以去NVIDIA官网查看你的GPU对应的最新兼容驱动,更新后再尝试导入。
重新安装TensorFlow,避免缓存损坏
- 有时候pip下载的安装包可能损坏,完全卸载后重新安装:
pip uninstall tensorflow-gpu -y pip install tensorflow-gpu==1.8.0 --no-cache-dir --no-cache-dir参数会强制重新下载安装包,避免使用缓存的损坏文件。
- 有时候pip下载的安装包可能损坏,完全卸载后重新安装:
内容的提问来源于stack exchange,提问作者user8075709
相关产品推荐
相关产品推荐

