【发布时间】:2015-04-18 13:58:37
【问题描述】:
在大量搜索此问题的解决方案后,我发现此特定错误尚未针对 Windows 正确记录。因此,我决定将此问题与解决方案一起发布。抱歉,如果我在错误的部分发布此内容。我希望这个解决方案能帮助用户在未来解决 PyOpenCL 安装错误。请注意,此处使用的示例适用于支持AMD OpenCL SDK SDK 的ATI Radeon GPUs。对于其他GPUs,请参考其各自的参数并根据需要实现。如果安装失败,也不要尝试使用pip 进行安装。而是从here 下载pyopencl 的压缩副本。
所以安装 PyOpenCL 时的错误信息是:
在 src/wrapper/wrap_cl.cpp:1:0:
中包含的文件中 src/wrapper/wrap_cl.hpp:27:19: 致命错误: CL/cl.h: 没有这样的文件或目录
错误:命令“gcc”失败,退出状态为 1
为了解决这个问题,必须知道默认的CL/cl.h通常存储在:C:/Program Files (x86)/.../include/CL。但由于 (x86) 无法被 gcc 编译器识别,您可以这样做:
- 复制
C:/Program Files (x86)/AMD APP SDK/2.9-1/include内的CL文件夹,并将其粘贴到单独的位置,例如您下载pyopencl.zip的目录。 - 还将
x86_64文件夹复制到C:/Program Files (x86)/AMD APP SDK/2.9-1/lib中,并将其粘贴到与CL文件夹相同的目录中。 - 解压文件夹
pyopencl.zip,进入(location of pyopencl)/src/wrapper - 在
wrapper文件夹中,打开文件wrap_cl.hpp。 - 将
#include <CL/cl.h>更改为#include <cl.h> - 接下来转到您在第一步中复制的
CL,打开文件cl_platform.h。再次重复第 5 步。 - 接下来在
CL文件夹中找到cl_ext.h文件并打开它。再次重复第 5 步。 - 在
admin模式下的cmd窗口中,进入pyopencl目录并运行命令python configure.py。这将生成一个siteconf.py文件,其中包含一些安装参数。 - 打开
siteconf.py文件,将CL_INC_DIR = []替换为CL_INC_DIR = [r'(path to the new location of the CL folder)'],将CL_LIB_DIR = []替换为CL_LIB_DIR = [r'(path to the new location of the x86_64 folder)']。 - 最后在
cmd中,从pyopencl目录运行python setup.py install并享受。
希望此解决方案在 Windows 8 (x64) 中安装 PyOpenCL 时对您有所帮助。欢迎任何其他建议。
【问题讨论】:
标签: python windows python-2.7 opencl pyopencl