Нет модуля с именем 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, но без решения.

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


person Chengy    schedule 29.09.2012    source источник
comment
На самом деле нормально отвечать на свои вопросы. Поместите py2exe в заголовок, и это будет хороший вопрос с ответом на вопрос.   -  person nneonneo    schedule 30.09.2012


Ответы (2)


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

person Chengy    schedule 30.09.2012
comment
Спасибо за этот ответ, сегодня он сэкономил мне время, когда я столкнулся с той же проблемой при выпуске новой версии GUIMiner. - person Kiv; 19.11.2012
comment
Знаете, что смешно? посмотрите на комментарий чуть ниже этой строки: # Кто знал, что установка Python настолько единообразна и предсказуема? - person rafael.js; 04.03.2013

Существует также самый простой способ сделать скрипт 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.

person Ashu007    schedule 05.02.2020