1. 程式人生 > >Tensorflow安裝在windows 上面出現ImportError: DLL load failed: 動態連結庫(DLL)初始化例程失敗。

Tensorflow安裝在windows 上面出現ImportError: DLL load failed: 動態連結庫(DLL)初始化例程失敗。

      最近開始學習tensorflow,電腦是win10 64位系統的,已經安裝了python3.6.1 32位的,tensorflow只支援python64位的,所以直接安裝了Python64位3.6.1。直接使用pip install tensorflow安裝,安裝的是1.8.0版本,安裝好後在命令列中執行import tensorflow出現問題,無法成功,現象如下: Microsoft Windows [版本 10.0.16299.371]
(c) 2017 Microsoft Corporation。保留所有權利。 C:\Users\zhaoshimin>python
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
Traceback (most recent call last):
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 648, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 560, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
ImportError: DLL load failed: 動態連結庫(DLL)初始化例程失敗。 During handling of the above exception, another exception occurred: Traceback (most recent call last):
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow_internal')
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\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\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 648, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 560, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
ImportError: DLL load failed: 動態連結庫(DLL)初始化例程失敗。 During handling of the above exception, another exception occurred: Traceback (most recent call last):
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow_internal')
  File "C:\Users\zhaoshimin\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
Failed to load the native TensorFlow runtime. See https://www.tensorflow.org/install/install_sources#common_installation_problems for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.
1、經過網上搜索,參考
http://blog.csdn.net/pjl6523853/article/details/72836214
的解答是沒有安裝vc64位執行庫,直接微軟體官網下載了,安裝後,執行import tensorflow還是老樣子。 2、看來問題還是沒有解決,繼續搜尋,找到了這個 博文的解決法,試過之後可以了。
     問題的原因是我的電腦(聯想V460)的cpu比較老,不支援AVX指令導致的,需要安裝特殊編譯的 tensorflow 1.6.0版本才可以解決,注意安裝時要先解除安裝先前安裝的1.8.0版本。關於這個問題的詳細解決過程可以參考
github上面tensorflow的論壇

以上兩步操作完成,問題解決了。編寫一個簡單的程式測試一下,OK了。



把上面的程式碼寫到py檔案中,使用python 3.6 shell執行,出現不識別tensorflow模組的問題。

        分析原因是由於電腦上同時安裝了python 3.6.1 32位和64位的問題,shell執行時還是載入的32位python的安裝包,所以還要想辦法解決一下32位和64位shell同時共存的問題,因為python3.6.1 32位已經編寫了很多軟體,還不能解除安裝。        這個問題解決的,原因很簡單,定義用於測試的檔案不能命名使用tensorflow.py,換成其他名字就好了。python32, python64在同一個電腦的包管路徑是不會衝突的,不需要做額外修改。