pyAA с py2exe - PullRequest
       6

pyAA с py2exe

0 голосов
/ 29 июля 2010

Кто-нибудь может заставить pyAA работать с py2exe?pyAA можно загрузить здесь .

Я пытаюсь сделать это в течение последних 2 дней, и до сих пор не могу найти решение.Файлы примеров приведены ниже:

hello.py

import pyAA
print "Hello, World"

setup.py

from distutils.core import setup
import py2exe

setup(console=['hello.py'],
      options = {"py2exe": {"bundle_files": 1}})

Теперь, если мы запустим:

 python setup.py py2exe

исполняемый файл создан.Но при его запуске выдается следующая ошибка:

Traceback (most recent call last):
File "hello.py", line 1, in ?
  File "zipextimporter.pyc", line 82, in load_module
  File "pyAA\__init__.pyc", line 1, in ?
  File "zipextimporter.pyc", line 82, in load_module
  File "pyAA\AA.pyc", line 8, in ?
  File "zipextimporter.pyc", line 82, in load_module
  File "pyAA\pyAAc.pyc", line 5, in ?
  File "zipextimporter.pyc", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd

Я пытался использовать Ходок зависимостей , но мне не удавалось понять слишком много того же.Я пытался добавить / удалить некоторые библиотеки DLL, но безрезультатно.

ps -> Обратите внимание, что без bundle_files он работает отлично.Но одно из требований проектов означает, что требуется bundle_file.

Ответы [ 4 ]

2 голосов
/ 30 июля 2010

Этот король вещей, кажется, общая проблема с py2exe. Возможно, попробуйте использовать другой установщик, такой как PyInstaller .

0 голосов
/ 02 августа 2010

Несколько раз я боролся с Py2Exe, поэтому связывание DLL с зависимостями обычно вызывает головную боль. Если память мне не изменяет, попробуйте добавить sys.exec_prefix в переменную окружения PATH. Это должно позволить программе найти IESHIMS.DLL

os.environ['PATH'] = os.sep.join([sys.exec_prefix, os.environ['PATH']])
0 голосов
/ 02 августа 2010

_pyAAc.pyd - это DLL, я думаю, что они должны загружаться непосредственно из файловой системы (а не из буферов памяти или архивов).

Если требуется решение с одним файлом, вы можете создать свой собственный пакетный рабочий результат py2exe, который распаковывается в TEMP и запускается оттуда. Я подозреваю, что какой-то самораспаковывающийся создатель архива может сделать этот трюк для вас без необходимости какого-либо кодирования с вашей стороны.

0 голосов
/ 01 августа 2010

Когда я устанавливаю pyAA и запуск зависит от _pyAAc.pyd, он говорит мне, что мне не хватает IESHIMS.DLL, хотя это может быть из-за того, что я на Windows 7.

...