没有名为pyopencl的模块(Py2exe)

Che*_*ngy 5 python py2exe pyopencl

在尝试从Py2Exe创建.exe时,我遇到了PyOpenCL模块的问题.Py2Exe使得.exe应该这样做(没有"ImportError:这里没有名为pyopencl的模块"),但是当我运行.exe时,它没有名为pyopencl的模块.

我正在尝试制作Phoenix Miner的.exe.

我的setup.py:

from distutils.core import setup
import py2exe, sys, os, pyopencl

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1,
                          "includes":["pyopencl","twisted",
                                      "zope","QueueReader",
                                      "numpy"]}},
    console=[{'script' : 'phoenix.py'}],
    data_files=["C:\\Users\\Nicklas\\Desktop\\Phoenix-Miner\\kernels\\poclbm\\kernel.cl"],
    zipfile = None,
)
Run Code Online (Sandbox Code Playgroud)

我找到了一个与我有同样问题的人http://bytes.com/topic/python/answers/848048-py2exe-module-error但没有解决方案.

更新:我发现导致此错误的原因.在pyopencl中__init__有一个名为_find_pyopencl_include_path的函数,它的功能非常自我解释.总而言之:imp模块无法找到pyopencl模块.为了解决这个问题,我注释掉了该行并将路径名设置为pyopencls包含目录的路径.可能不是一个好的解决方案.但这很容易解决.

Che*_*ngy 4

我找到了导致此错误的原因。在 pyopencl 中__init__有一个名为 的函数_find_pyopencl_include_path,它的作用非常不言自明。长话短说:imp模块找不到pyopencl模块。为了解决这个问题,我注释掉了该行并将路径名设置为 pyopencls include 目录的路径。可能不是一个好的解决办法。但这是一个简单的修复。