2011-07-07 274 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', 
        } 
       },