在大量搜索该问题的解决方案之后,我发现此特定错误尚未针对Windows正确记录。因此,我决定将这个问题与解决方案一起发布。抱歉,如果我在错误的部分发布了此内容。我希望该解决方案将来能帮助用户解决PyOpenCL安装错误。请注意,此处使用的示例适用于支持ATI Radeon GPUs SDK的AMD OpenCL SDK。对于其他GPUs,请引用它们各自的参数并根据需要实现它们。如果安装失败,也不要尝试使用pip进行安装。而是从here下载zipt_code的压缩副本。

因此,在安装PyOpenCL时的错误消息是:



为了解决这个问题,必须知道默认的CL/cl.h通常存储在pyopencl中。但是由于C:/Program Files (x86)/.../include/CL编译器无法识别(x86),因此您可以执行以下操作:

  • 复制gcc内的CL文件夹,并将其粘贴到单独的位置,例如您下载C:/Program Files (x86)/AMD APP SDK/2.9-1/include的目录。
  • 还复制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。再次重复步骤5。
  • 接下来,在cl_platform.h文件夹中找到cl_ext.h文件,然后将其打开。再次重复步骤5。
  • CL模式下的cmd窗口内,转到admin的目录并运行命令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目录中运行python setup.py install并开始使用。

  • 希望此解决方案在Windows 8(x64)中安装pyopencl期间对您有所帮助。欢迎其他任何建议。

    最佳答案

    经过2天的尝试和错误,我做到了。已安装PyOpenCL。这是我的硬件:
    装有已安装Catalyst且大多数已导入的ATI Radeon 7970:安装AMD APP SDK(2.9.1)

    从PyOpenCL开始安装的软件:
    1. Python 2.7.9(x86)
    2.脾气暴躁(x86)
    3. pywin32
    4. Visual Studio 2008年
    5. Mako(-> easy_install Mako)
    6.提升

    对我来说,最重要的步骤是正确设置SITECONF.py文件。为拿到它,为实现它:
    在pyopencl目录中运行“python configure.py”以获取示例siteconfig.py。

    这是修改后的文件。请注意,如果您想使用nVidia,则CL_INC_DIR = []和CL_LIB_DIR = []将有所不同,也许看起来像这样:
    CL_INC_DIR = [r'C:\Program Files\NVIDIA GPU计算工具包\CUDA\v4.1\include']
    CL_LIB_DIR = [r'C:\Program Files\NVIDIA GPU计算工具包\CUDA\v4.1\lib\x64']

    因此,我的siteconf.py文件:

      BOOST_INC_DIR = [r'C:\C++ Projects\boost_1_55_0']
      BOOST_LIB_DIR = [r'C:\C++ Projects\boost_1_55_0\stage\lib']
      BOOST_COMPILER = 'gcc43'
      BOOST_PYTHON_LIBNAME = ['boost_python']
      USE_SHIPPED_BOOST = True
      CL_TRACE = False
      CL_ENABLE_GL = True
      CL_ENABLE_DEVICE_FISSION = True
      CL_INC_DIR = [r'C:\Program Files (x86)\AMD APP SDK\2.9-1\include']
      CL_LIB_DIR = [r'C:\Program Files (x86)\AMD APP SDK\2.9-1\lib\x86_64']
      CL_LIBNAME = ['OpenCL']
      CXXFLAGS = ['/EHsc']
      LDFLAGS = ['/FORCE']
    

    您可以在线找到许多示例,其中Microsoft SDK也放在CL_INC_DIR = []和CL_LIB_DIR = []中,但是我不打算在我的i3处理器上使用OpenCL,因此没有使用MS文件构建pyopencl。
    我希望这可以帮到你!和梦想的结果:
    >>>将pyopencl导入为cl
    >>>

    08-18 13:58