【TF2】Tensorflow 2.1 + Windows pythonにてImportError: DLL load failed の件

TIPS ディープラーニング
スポンサーリンク

1時間くらいハマりましたが、
解決しましたのでメモとして残しておきます。

調査日:2020年1月16日

現象

Python3.7でもPython3.6でも発生。
Anaconda環境でも発生。

TF2.0では発生していなかったのに、
2.1にアップデートした途端に発生。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow\__init__.py", line 101, in <module>
    from tensorflow_core import *
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow_core\__init__.py", line 40, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
    module = self._load()
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow\__init__.py", line 44, in _load
    module = _importlib.import_module(self.__name__)
  File "E:\Anaconda3\envs\py37\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow_core\python\__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "E:\Anaconda3\envs\py37\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "E:\Anaconda3\envs\py37\lib\imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "E:\Anaconda3\envs\py37\lib\imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: 指定されたモジュールが見つかりません。

解決

いろいろ試したところ、
「visual studio 2015, 2017, 2019ランタイムのインストール」で直りました。

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

↑の最適なものを選択。
( 自分のWindows10環境では VC_redist.x64.exe )

 

情報元

Tensorflow公式のIssues に乗ってました。

Tensorflow 2.1.0 - DLL load failed · Issue #35618 · tensorflow/tensorflow
System information OS Platform and Distribution: Windows 10 TensorFlow installed from (source or binary): pip install tensorflow-gpu==2.1.0rc2 TensorFlow versio...
TensorFlow 2.1: ImportError: DLL load failed: The specified module could not be found. · Issue #35749 · tensorflow/tensorflow
I am using Python 3.76 TensorFlow 2.1 Installed using: pip install tensorflow Processor: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz, 2601 Mhz, 2 Core(s), 4 Logica...

 

また、同様の解決法Qiitaで載せてくださってたんですね。。。
今気づきました。

tensorflowがimportできない問題がVC++ Redistributableを入れたら解決した - Qiita
はじめに いきなり解決してしまって、なにがカギだったかわからないのですがだれかの参考になれば、と書き残しておきます.. 開発環境 Windows 10 Python 3.6.1 tensorflow 2.1.0 ど...

 

調査時の検索キーワード

どういう検索キーワードでたどり着いたか、参考までに

“tensorflow 2.1 ImportError: DLL load failed: 指定されたモジュールが見つかりません。”
日本語をまず調査 → うまく見つからず

“tensorflow 2.1 importerror dll load failed”
Googleサジェストに流されるまま → 公式のissues(前述のリンク)にたどり着き、解決法まで書かれていた

 

お役に立てれば幸いでございます。
そいではまたー