繁体   English   中英

没有名为 pyopencl (Py2exe) 的模块

[英]No module named pyopencl (Py2exe)

尝试从 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 包含目录的路径。 可能不是一个很好的修复。 但这是一个简单的修复。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM