Ome*_*bin 4 python windows python-3.x tensorflow
我在路径中有一个 DLL 文件:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudart64_101.dll
,但TensorFlow
似乎无法识别它:
2020-03-11 14:39:19.815880: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
Run Code Online (Sandbox Code Playgroud)
我确保 PATH 变量包含 DLL 的路径:
>>> l = os.environ['PATH'].split(';')
>>> for s in l:
... print(s)
...
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我手动包含它,ctypes
它会成功加载:
>>> import ctypes
>>> hllDll = ctypes.WinDLL("C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\bin\\cudart64_101.dll")
>>> import tensorflow as tf
2020-03-11 15:05:26.907300: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
Run Code Online (Sandbox Code Playgroud)
这是为什么?我该如何解决?
Mir*_*ili 11
就我而言,问题出在从Windows 商店安装的 python!
请参阅@smreichling对tensorflow 的 GitHub(问题 36111)的评论:
问题原来是我安装的python版本是来自Microsoft Store的版本,而不是来自python.org的版本。事实证明,从 Microsoft Store 安装的应用程序是沙盒化的。Windows 非常严格地限制了它们可以从何处加载 DLL。其中的限制是:Windows 不会在
PATH
env var 中的目录中搜索DLL。所以应用商店 python 永远无法通过这种方式找到 CUDA DLL。
所以我安装了可以从https://www.python.org下载的那个。
归档时间: |
|
查看次数: |
6330 次 |
最近记录: |