Нет модуля с именем pyopencl (Py2exe)

У меня возникли некоторые проблемы с модулем PyOpenCL при попытке сделать.exe из Py2Exe. Py2Exe создает.exe так, как должен (нет "ImportError: здесь нет модуля с именем pyopencl"), но когда я запускаю.exe, он говорит, что нет модуля с именем pyopencl.

Я пытаюсь сделать.exe из Phoenix Miner.

Мой 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 но без решения.

ОБНОВЛЕНИЕ: я нашел, что было причиной этой ошибки. В пиопенкле __init__ есть функция с именем _find_pyopencl_include_path, которая совершенно не требует пояснений относительно того, что она делает. Короче говоря: модуль imp не может найти модуль pyopencl. Чтобы это исправить, я закомментировал эту строку и установил путь к пути к каталогу pyopencls include. Вероятно, не очень хорошее решение. Но это было легко исправить.

1 ответ

Решение

Я нашел, что было причиной этой ошибки. В пиопенкле __init__ есть функция под названием _find_pyopencl_include_pathЭто вполне понятно, что он делает. Короче говоря: imp модуль не может найти pyopencl модуль. Чтобы это исправить, я закомментировал эту строку и установил путь к пути к каталогу pyopencls include. Вероятно, не очень хорошее решение. Но это было легко исправить.

Существует также самый простой способ сделать исполняемый скрипт Python с помощью auto-py-to-exe модуль, его можно установить с помощью pip install auto-py-to-exe и после установки напишите auto-py-to-exe в терминале командной строки python появится окно, выберите расположение сценария и выберите OneFile вместо OneDirectory, здесь для справки я вставляю auto-py-to-exeснимок экрана окна. После преобразования появится опция "открыть папку вывода", в которой вы получите файл.exe скрипта Python. И этот файл.exe запускается в любой системе без использования python.

Другие вопросы по тегам