狀況>>>
import wx
以後,卻發現 wx 只剩下一個 file_get_contents 的 function,其它的功能全部都不見了!
或是
import wx.lib.agw.xxx
的時候,Python 告訴你 "ImportError" ,找不到 .lib 及其以後的東西!是的,您終於在茫茫網海中找到我這篇苦海明燈了!
原因>>>
不知道哪一位把一個內容貧乏且註解為簡體中文的 wx.py 檔放在
/usr/local/lib/python2.7/dist-packages/wx-1.0.0-py2.7.egg/
目錄下,於是在某些情況下 (註) ,這個貧乏的 wx.py 檔就被視為 wx 模組引入了。
(這種形容方式戰意濃烈啊!)
但憑該檔案貧乏的內容,自然無法為您處理任何 GUI 的工作。
[註] 奇怪的是,這種事並不會「每次都發生」!我遇到的是核心版本一樣的Ubuntu 12.04 LTS, Python2.7 的兩部機器,一部每次都卡住,一部就直接無視那個導致錯誤的 wx.py 檔,從來沒出錯。
解法有二>>>
1). 把
/usr/local/lib/python2.7/dist-packages/wx-1.0.0-py2.7.egg/wx.py
改個名字,比如說 "dummy_wx.py",然後再把同一個目錄下的 wx.pyc 檔砍掉!2). 更動你的程式原始碼。在 import wx 以前,先做
import wxversion
wxversion.select("2.8")
然後才
import wx
兩種方法擇一即可。
這應該不算是「徹底解決問題的方案」,但…嘿~載入 Python,少做多玩吧!
後記>>>
根據陰國研究,wx 程式開發及運作時順暢與否,與人品有極大正相關性。老實說這個 bug 和我的程式一點關係也沒有。但不解開它,我的程式就不能跑。更可怕的是,這十個小時裡,在兩部機器裡交叉比對的結果,兩部機器的條件一模一樣啊!怎麼會這部可以跑,那部就不行呢?難不成是見鬼了?還是我應該要拿出信用卡來,勇敢地再買一台筆電來做「公正第三方」呢? (呿~想花錢就說咩~找那麼多藉口~) 於是,就在「跨丟鬼」的壓力和要不要刷卡的煎熬中用十個小時的時間,終於讓我「矇」到 bug 所在,並找到解決的辦法了…
0 意見:
張貼留言