我想在我的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