首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyopencl导入错误

pyopencl导入错误
EN

Stack Overflow用户
提问于 2017-11-07 23:38:56
回答 2查看 2.5K关注 0票数 4

我在Windows10上通过Anaconda运行python 3.5.4和conda-forge的pyopencl 2017.2,通过Anaconda安装。我的系统是带有R9 290的i5 4670K,运行的驱动程序版本为17.11.1和OpenCL版本23.20.788.0。

在尝试导入pyopencl模块时,我遇到以下错误

代码语言:javascript
复制
    >>> import pyopencl as cl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "[my home folder]\Anaconda3\lib\site-packages\pyopencl\__init__.py", line 37, in <module>
    import pyopencl.cffi_cl as _cl
  File "[my home folder]\Anaconda3\lib\site-packages\pyopencl\cffi_cl.py", line 39, in <module>
    from pyopencl._cffi import ffi as _ffi
ImportError: DLL load failed: The specified module could not be found.

加载_cffi.pyd时出现错误。此错误与之前线程中显示的问题有相似之处:

Python pyopencl Import Error

cffi load failure when trying to import PyOpenCL

pyopencl import error cffi.so undefined symbol

然而,尽管安装完成(似乎)没有错误,我从AMD和英特尔安装OCL SDK:s问题仍然存在。我还更新了我的图形卡驱动程序。

我尝试使用Dependency Walker检查_cffi.pyd的依赖关系,如下线程所述:

Python pyopencl DLL load failed even with latest drivers

这确实在名称以API-MS-WINEXT-MS-WIN开头的opencl.dll下出现了许多循环依赖和缺失依赖。在/System32中重命名opencl.dll并改用\Anaconda3\Library\bin中的名称时,依赖项错误仍然存在。

我搜索了一下,发现了这个帖子:

Dependency Walker: missing dlls

这基本上是说,丢失的依赖项没有什么可担心的。

EN

回答 2

Stack Overflow用户

发布于 2018-12-18 03:18:15

我也遇到了这个问题,我的研究使我找到了这个文档,它帮助我安装了一个兼容的版本:https://media.readthedocs.org/pdf/mot/master/mot.pdf

该错误是因为您没有适用于AMD或Intel的pyopencl和opencl驱动程序的兼容版本。

引用:

安装预编译的二进制轮子(.whl)是安装PyOpenCL的最简单方法,但只有在为您的特定Python实现编译轮子的情况下才有效。在Christoph Gohlke网站(http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl)上,您可以找到一系列PyOpenCL二进制包。如果有适用于您系统的兼容版本,请下载该版本。如果二进制名中的Python版本和OpenCl版本与您安装的Python版本和驱动程序支持的版本匹配,您可以查看它是否兼容。请注意,许多驱动程序,例如nVIDIA的,只支持OpenCL 1.2,因此在这种情况下,请在名称中使用“+cl12”,而不是例如“+cl21”。例如,如果你有64位Windows系统,Python3.5,并且你的图形处理器或中央处理器驱动程序支持OpenCL 1.2,你需要下载名称中带有“+cl12”,win-amd64和cp35m的轮子(注意格式,cpm,m是重要的)。(要检查您的Python版本,可以在命令行中运行python --version )。

这应该会对你有帮助

票数 3
EN

Stack Overflow用户

发布于 2019-12-18 04:52:48

我在我的英特尔核芯显卡4400 GPU上遇到了同样的问题。它以前工作过(我记不清之前是怎么工作的了)。在某种程度上,我得到了与Asker描述的完全相同的pyopencl导入错误。

经过一些尝试之后,我从这里安装了英特尔OpenCL驱动程序:https://software.intel.com/en-us/articles/opencl-drivers。在安装过程中,它显示我的常规英特尔HD4400驱动程序需要先卸载,这是安装工具为我做的。然后安装了OpenCL驱动程序,我可以再次在我的图形处理器上使用OpenCL了。我的理论是:可能,我的设置在Windows更新期间被损坏了,而Windows更新有时也倾向于更新设备驱动程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47161850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档