没有名为pyopencl的模块(Py2exe)

时间:2012-09-29 14:29:12

标签: 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,
)

我发现有人遇到与我http://bytes.com/topic/python/answers/848048-py2exe-module-error相同的问题,但没有解决方案。

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

还有使用auto-py-to-exe模块使python脚本可执行的最简单方法,可以使用pip install auto-py-to-exe安装它,并且在python命令行终端中安装write auto-py-to-exe后,将出现一个窗口,选择脚本位置,然后选择OneFile而不是OneDirectory,以供参考,此处我粘贴了auto-py-to-exe窗口截图 enter image description here 转换“打开输出文件夹”后,将出现选项,您将在其中获取python脚本的.exe文件。而且,该.exe文件无需使用python即可在任何系统上运行。