Моя консоль ipython в Spyder (Anaconda) не выбирает правильные переменные среды PATH в Windows
Прежде всего, очень оригинальная проблема возникла из-за того, что я пытался установить Tensorflow GPU.
Для начала я сначала установил все зависимые пакеты (драйвер графического процессора Nvidia, CUDA, cudnn и т. Д.), Новый пакет Anaconda и tenorflow-gpu. Пока все хорошо.
Затем я запустил Spyden IDE и попытался запустить "импорт тензорного потока" в ipython. Затем я получил эту ошибку:
Traceback (most recent call last):
File "<ipython-input-1-d6579f534729>", line 1, in <module>
import tensorflow
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\zhengxin\Anaconda3\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\zhengxin\Anaconda3\lib\imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\zhengxin\Anaconda3\lib\imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
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.
Затем я провел много исследований и выяснил, что наиболее вероятной причиной этой ошибки является то, что следующие два пути НЕ находятся в переменной среды PATH, отображаемой в Spyder (ipython).
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
Очень странно то, что эти два пути действительно существуют в системной переменной окружения PATH моих окон.
Итак, наконец, мой вопрос: почему Spyder/ipython/anaconda не выбирает переменные окружения PATH в Windows?
1 ответ
ОК, я решил эту проблему сам.
Тот факт, что переменные окружения PATH отсутствуют, является реальным, но на самом деле это всего лишь признак неправильной установки зависимостей tenorflow-gpu.
В конечном счете, проблема возникла из-за того, что я установил CUDA 10.0 и сопровождающий его cuDNN. Версия 10.0 была последней версией на сайте NVIDIA, и это была такая естественная ошибка для людей! В любом случае, я прочитал примечания к выпуску CUDA и TensorFlow и решил, что вместо этого мне нужно установить CUDA 9.0. И это сработало!
Самое удивительное и странное, как только я установил CUDA 9.0, все переменные окружения внезапно стали правильными! т.е. переменные окружения пути для всех этих четырех каталогов внезапно, как по волшебству, появляются в переменных PATH моего ipython / anaconda / spyder!
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\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp