os x 10.6.8无法在Python Interactive Mod中输入nonASCII/UTF8字符(例如:å,ä,ö)

2024-09-26 18:20:46 发布

您现在位置:Python中文网/ 问答频道 /正文

运行OS X 10.6.8 Snow Leopard我无法将斯堪的纳维亚字母输入解释模式。每次按一下键,终端铃都会响起来,但什么也没有出现。所有字母在常规终端环境中正常显示。在终端、运行python脚本、PyDev和REPL中,输入UTF8字符可以很好地工作

交互模式设置和这些特殊字符是否有问题?在

我已经安装并运行python2.7.3,但是操作系统提供的python也有这个问题。(例如,当运行python2.5python2.6时,我仍然遇到这个问题。)我不知道安装Python2.7是否改变了它所使用的库下的一些内容,可能是readline(我在这方面很谨慎,基本上是在猜测)?在


Tags: 脚本终端环境os字母模式utf8repl
3条回答

听起来问题是python.org网站Python希望得到真正的readline,但对苹果提供的libedit替代品并不满意。在

有关这个问题的解释,请参阅PyPI上的^{}文档。在

可以按如下方式进行修复:

sudo /path/to/easy_install readline

请注意,readlinepip无法正确安装的少数几个东西之一,因此您必须使用easy_install(或手动执行)。在

在python.org网站2.x安装程序不提供easy_install。按照^{}页面上的说明安装它。在

除此之外,请记住,在某些情况下,您可以在/usr/local/bin中使用applepythoneasy_install,也可以使用/usr/bin,这意味着您不能确定/usr/local/bin/easy_install会得到python.org版本,所以显式地使用easy_install-X.Y。在

如果你用的是python.org网站(或其他)安装苹果已经给你的X.Y版本。/usr/local/bin/easy_install-2.7很可能是苹果的(就像我现在坐的10.8.2机器上一样)。唯一安全的方法是检查shebang行,看看它使用哪个Python解释器。在

或者,更简单地说,如果苹果已经给了你一个python-X.Y,就不要安装它。说真的,有成百上千的问题都来自于那些做过这件事并且有问题的人,而所有这些问题都可以通过使用苹果公司的产品来避免。苹果曾经发布过破损、不完整和/或严重过时的Python,但从10.5或10.6开始,他们一直在发布有效的、完整的、合理的最新版本,包括easy_install和{}。在

我在“How to define/declare utf-8 code points for Turkish special chars (non-ascii) to use them as standart utf-8 encoding?”上讨论了几乎相同的问题。据我目前所知,这个问题是由于unicode和utf-8中的低效定义造成的。unicode和utf-8中的声明基于字符的显示字体(扩展重音符号、非标准字体)。这在过去可能是令人满意的,但今天的编程要求远远超过了基于ascii的ansi标准,而且目前许多语言的cahrcode声明(具有基于ascii的扩展字符集字母表)在处理编码、转换和测试方面存在问题。在我的问题下,你可以在笔记里找到更多的细节。utf-8被设计成无版本,但我担心非英语拉丁字母需要在新版本的utf-8中重新声明,以便为每个字母提供完整的范围,同时为相同的字符保持相同的字体。在我的理论中,每一个字母表都有它自己的A,具有相对不同的字符代码和代码点,但是所有的A(s)都指向相同的字体代码。因此,当用任何语言显示A时,使用字体代码时,每个A都将小于它的字母表中的任何字符,但ascii z永远不会小于Şşççö或任何重音字符。。。。在

由于您使用的是2.7.3,而10.6没有附带这个版本,显然您已经安装了一些第三方Python。在

如果你看一下Python 2.7.3的download page中的“Mac OS X 64位/32位x86-64/i386安装程序(2.7.3)for Mac OS X 10.6和10.7”安装程序,它会说:

You may need an updated Tcl/Tk install to run IDLE or use Tkinter, see note 2 for instructions.

注2:

There is important information about IDLE, Tkinter, and Tcl/Tk on Mac OS X here. Also, on Mac OS X 10.6, if you need to build C extension modules with the 32-bit-only Python installed, you will need Apple Xcode 3, not 4. The 64-bit/32-bit Python can use either Xcode 3 or Xcode 4.

如果您遵循the link,它将解释10.6附带的Tcl/Tk版本的问题。请注意,在下面的图表中,不建议使用Apple 8.5.7。在

如果您想在10.6上对非applepython使用IDLE,图表建议安装ActiveTcl 8.5.13。在

如果你不能正确地解释一下,在苹果电脑的某些情况下,我能正确地解释一下,在什么情况下,这些字符是用来处理的。在

如果您使用的是不同的Python2.7.3(Enthown、ActiveState、Homebrew、MacPorts、hand-Build等),它们大多没有关于这个问题的完整文档,但是相同的修复方法可能会起作用。在

我相信10.6也是苹果开始发布合理的现代Python版本和空闲工作的时候,所以您可能希望首先使用它而不是第三方Python。(不过,我可能记错了,可能只有10.7及更高版本才是如此。)

相关问题 更多 >

    热门问题