尝试从 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,
)
我发现有人和我有同样的问题http://bytes.com/topic/python/answers/848048-py2exe-module-error但没有解决方案。
更新:我找到了导致此错误的原因。在 pyopencl__init__
中有一个名为 _find_pyopencl_include_path 的函数,它的作用是不言自明的。长话短说:imp 模块找不到 pyopencl 模块。为了解决这个问题,我注释掉了该行并将路径名设置为 pyopencls 包含目录的路径。可能不是一个好的修复。但这很容易解决。