Невозможно импортировать модуль - PullRequest
0 голосов
/ 07 июля 2011

Я бы хотел изучить Python, так как он выглядит красиво, и я хочу работать с GTK.Мой предыдущий опыт в программировании - Java и C #, с трудом справляющиеся с ошибками.Однако у меня проблемы с pythons py2exe и понимаю, как отладить эту проблему.Из того, что я могу понять, это, вероятно, ошибка установки, относящаяся к типам версий и расположению файлов, а не к коду.

Я работаю

  • Windows 7 64 бит
  • Pythonверсия 2.7.2 - 32-битная
  • pygtk-все-в-одном-2.24.0.win32-py2.7
  • py2exe-0.6.9.win32-py2.7

Все гиперссылки можно увидеть на http://pastebin.com/MNGPQVMP Это связано с тем, что Stackoverflow позволяет мне публиковать только 2 ссылки, но у меня много информации!

Моя проблема в том, что python выполняет мой базовый код нормально, без проблем, однако при использовании py2exe возникают ошибки.

Чтобы выдать ошибку, я запустил

python setup.py py2exe

В списке есть оба файла python, журнал ошибок exe и консольный вывод

  • PyApp.py> См. главную ссылку
  • setup.py> См. главную ссылку
  • PyApp.exe.log>См. Основную ссылку
  • Вывод на консоль при запуске py2exe> См. Основную ссылку

Для получения дополнительной информации я запустил

python -m py2exe.mf -d PyApp.py 
python -m py2exe.mf -d setup.py

Вывод обоих комmands перечислены ниже

  • python -m py2exe.mf -d PyApp.py> См. основную ссылку
  • python -m py2exe.mf -d setup.py> См. основную ссылку

из того, что я могу понять из журнала ошибок exe и вывода консоли, это не может импортировать gio (это часть glib?).А дополнительные списки модулей указывают на другие ошибки.

Ошибка gio из списка PyApp.py модуля указывает на \ Python27 \ lib \ site-packages \ gtk-2.0 \ glib \ _ init _. py Этот файл содержит

enter from glib._glib import *
_PyGLib_API = _glib._PyGLib_API
del _glib here

Так что, похоже, что-то может отсутствовать.Однако я не совсем уверен,

Так как мне исправить эту ошибку импорта?

Кроме того, как примечание, Dependency Walker также заявляет, что отсутствует 2 dll окна.http://localhostr.com/files/Gf1mXT3/Dependency_Walker..png У меня есть библиотеки DLL, однако они являются 64-битными, а не 32-битными, и если я помещу их в каталог, Dependency Walker помечает 64-битную ошибку, но на данный момент это явно не проблема.

Это популярная проблема, но я не могу решить, как ее исправить, используя информацию, которую я получил.

1 Ответ

1 голос
/ 13 августа 2011

Очень легко исправить!В вашем файле setup.py у вас должна быть строка примерно такая:

options = {
                  'py2exe': {
                      'packages':'encodings',
                      'includes': '<module names>',
                  }
              },

Чтобы исправить ошибку, просто добавьте «gio» в список «include», например:

options = {
                  'py2exe': {
                      'packages':'encodings',
                      'includes': 'gio',
                  }
              },

У меня есть программа, встроенная в pyGTK, поэтому мне нужно импортировать несколько модулей.Просто для справки, этот код выглядит как мой:

options = {
                  'py2exe': {
                      'packages':'encodings',
                      'includes': 'cairo, pango, pangocairo, atk, gobject, gio, subprocess',
                  }
              },
...