[환경 구축] TensorFlow 움직이면 "ImportError: DLL load failed:~"가 나온다

배경



Interface 2019년 5월호(CQ출판) 의 기사안에, Tensorflow Object Detection API 를 사용한 물체 검출에 대한 샘플 가 있어, 재미있을 것 같아서 움직이고 싶었습니다. 그러나 환경 구축으로 상당히 망설이기 때문에 기록을 남겨 둡니다.

환경


  • windows 10
  • python=3.6.5

  • 했던 일



    우선은 잡지의 기사를 참고로 환경 구축을 했습니다만, 에러가 나오고 잘 작동하지 않았습니다. 그래서, 이하의 기사를 참고로 다시 환경 구축을 했습니다.

    · Anaconda Prompt에서 TensorFlow를 도입하는 데 어려움을 겪은 이야기
    · TensorFlow Object Detection API를 Windows에서 사용해 보았습니다.

    그러나 작동하지 않고 tensorflow를 가져 오려고하면 다음과 같은 오류가 발생했습니다.
    Traceback (most recent call last):
      File "C:\Users\grin\Anaconda3\envs\study\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
        from tensorflow.python.pywrap_tensorflow_internal import *
      File "C:\Users\grin\Anaconda3\envs\study\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
        _pywrap_tensorflow_internal = swig_import_helper()
      File "C:\Users\grin\Anaconda3\envs\study\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 "C:\Users\grin\Anaconda3\envs\study\lib\imp.py", line 243, in load_module
        return load_dynamic(name, filename, file)
      File "C:\Users\grin\Anaconda3\envs\study\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 "detect_cat.py", line 2, in <module>
        import tensorflow as tf
      File "C:\Users\grin\Anaconda3\envs\study\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
        from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
      File "C:\Users\grin\Anaconda3\envs\study\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
        from tensorflow.python import pywrap_tensorflow
      File "C:\Users\grin\Anaconda3\envs\study\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
        raise ImportError(msg)
    ImportError: Traceback (most recent call last):
      File "C:\Users\grin\Anaconda3\envs\study\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
        from tensorflow.python.pywrap_tensorflow_internal import *
      File "C:\Users\grin\Anaconda3\envs\study\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
        _pywrap_tensorflow_internal = swig_import_helper()
      File "C:\Users\grin\Anaconda3\envs\study\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 "C:\Users\grin\Anaconda3\envs\study\lib\imp.py", line 243, in load_module
        return load_dynamic(name, filename, file)
      File "C:\Users\grin\Anaconda3\envs\study\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.
    exit status 1
    

    거기서부터는 '뭔가 모르겠다!'정신으로 .. 를 반복했습니다.
    결과...

    이렇게하면 할 수있었습니다.



    새로운 환경을 만듭니다.$conda create -n test python=3.6.5 anaconda
    환경을 activate하면,
    $pip install tensorflow==1.12.0이것만이었다. . .

    tensorflow 버전을 지정하지 않으면 내 환경이라면 기본적으로 1.13.1이 설치되어 이것이 궁합이 좋지 않은 것 같습니다.

    물체 감지 샘플도 무사히 실행할 수 있었습니다.

    여기
    이미지 출처( 여기 )

    「뭔가 모르겠지만 쿠라・・・」
    아니,,tie...넥타이?person...사람??
    글쎄, 넥타이 한 사람에게도 보인다 ... 없다.

    좋은 웹페이지 즐겨찾기