2011-07-07 214 views
0

我想学习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可以看出这是由于计算器只允许我婆圣2链接,但我有很多信息!

我的问题是python执行我的基本代码罚款没有问题,但使用py2exe错误发生。

为了制造我跑

python setup.py py2exe 

在列表中的错误都是Python文件,该exe错误日志和控制台输出

  • PyApp.py>看主要链接
  • 设置.py>请参阅主链接
  • PyApp.exe.log>请参阅主链接
  • 运行py2exe的控制台输出>请参阅main链接

对于一些额外的信息,我跑

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

两个命令的输出列举如下

  • 蟒蛇-m py2exe.mf -d PyApp.py>看主要链接
  • 蟒-m py2exe.mf -d setup.py>参见主链路

从我可以从exe错误日志和控制台输出了解它是不能导入gio(是glib的那部分?)。额外的模块列表指示了其他错误。

从PyApp.py点模块连城吉奥错误\ Python27 \ LIB \站点包\ GTK的2.0 \巧舌如簧\ _ 初始化 _.py此文件包含

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

所以它看起来像可能会丢失一些东西。但我不太确定

那么我该如何解决这个导入错误?

另外,作为一个附注,Dependency Walker也声明缺少2个Windows dll。 http://localhostr.com/files/Gf1mXT3/Dependency_Walker..png 我有DLL,但他们是64位,而不是32位,如果我把它们放在目录中,然后依赖行走者标记64位错误,但目前它显然不是问题。

这是一个流行的问题,但我似乎无法解决如何解决它与我得到的信息。

回答

1

很容易修复!在你的setup.py文件,你应该有一个路线是这样的:

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

为了修正这个错误,只需添加“GIO”,以列表“包括”,像这样:

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

我有一个程序内置pyGTK,所以我有一些模块,我必须导入。仅供参考,代码看起来像是我的:

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