我想在我的curses應用程序中顯示大量的unicode文本。我的開發機器是MacOSx 10.6,我使用Apple提供的默認Python。Mac版本的Python在curses模塊中不支持UTF-8?
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
當我向屏幕添加unicode文本時,屏幕全部搞砸了。我嘗試Google解決方案,其他人建議將_curses模塊與libncursesw庫而不是libncurse庫鏈接。
我檢查了我的路,我發現(見下文)在/ opt/local/lib目錄
libncurses++.a
libncurses++w.a
libncurses.5.dylib
libncurses.a
libncurses.dylib
libncursesw.5.dylib
libncursesw.a
libncursesw.dylib
如何檢查哪個庫我詛咒模塊相連,我怎麼能與其他庫鏈接?有沒有可能沒有重新編譯我的Python呢?
這是一種尷尬,但我想到了在我的環境中正確打印unicode的解決方案。我想在某些時候,我確實從Macports安裝了curses庫,並忘記了我已經擁有它了。
文本第一次沒有顯示的問題是因爲我需要在我的python程序中設置語言環境。我認爲,區域設置會從我運行shell繼承,而只是添加了兩行代碼固定我的問題:
import locale
locale.setlocale(locale.LC_ALL,"")
雖然,這是很好的知道蟒蛇外部庫的生活,以及如何進行檢查。
我試圖將/ usr/lib中的libcurses.dylib與我在/ opt/local/lib中找到的libcurses.dylib鏈接在一起,但結果是一樣的......所以沒有運氣〜 – Patrick 2010-06-28 01:28:58
令人驚訝的是,魔術兩行,python(Apple版本)和python2.6(Macport版本)均正確顯示unicode。 – Patrick 2010-06-28 02:11:02