0

Running OS X 10.6.8 Snow Leopard I cannot input the scandinavian letters into the interpretive mode. The terminal bell sounds for every keystroke and nothing shows up. All letters show up as normal in the regular terminal environment. Inputting UTF8 characters works fine in the Terminal, when running a python script, in PyDev and in the REPL

Is there a problem with the interactive mode settings and these special characters?

I have installed and am running python 2.7.3 mainly, but the OS-provided Pythons have this problem too. (i.e when running python2.5 or python2.6 I still experience this problem.) I dont know if installing python 2.7 has changed some under library that it uses, maybe readline (I'm on thin ice here, guessing basically)?

4

3 回答 3

2

听起来这里的问题是 python.org Python 期待 real ,并且对 Apple 提供的替代品readline不满意。libedit

有关该问题的说明,请参阅readlinePyPI 的文档。

您可以按如下方式修复它:

sudo /path/to/easy_install readline

请注意,这readline是少数无法通过 正确安装的东西之一pip,因此您必须使用easy_install(或手动执行)。

python.org 2.x 安装程序不附带easy_install. 按照页面上的说明进行安装setuptools

最重要的是,请记住,在某些情况下,您最终可能会使用 Apple-pythoneasy_install以及/usr/local/bin/usr/bin这意味着您不能确定是否/usr/local/bin/easy_install会获得该python.org版本,因此请明确使用easy_install-X.Y.

如果您使用的是 Apple 已经提供给您的 XY 版本的 python.org(或其他)安装,即使这样也无济于事。/usr/local/bin/easy_install-2.7很可能是苹果的(因为它在我现在坐在的 10.8.2 机器上)。唯一安全的方法是检查 shebang 行并查看它使用的 Python 解释器。

或者,更简单地说,如果 Apple 已经为您提供了一个 python-XY,请不要安装它。严肃地说,有数百个问题来自这样做的人并遇到问题,而所有这些问题都可以通过使用 Apple 构建来避免。Apple 曾经发布过损坏的、不完整的和/或严重过时的 Python,但从 10.5 或 10.6 开始,他们一直在发布工作的、完整的、相当新的版本,包括额外的类似easy_installPyObjC包括在内的版本。

于 2013-02-01T08:34:24.457 回答
1

我在“如何为土耳其特殊字符(非 ascii)定义/声明 utf-8 代码点以将它们用作标准 utf-8 编码? ”中讨论了几乎相同的问题。s 拥有 A 具有相对不同的字符代码和代码点,但所有 A(s) 将指向相同的字体代码。因此,虽然在任何语言中显示 A 都使用字体代码,但每个 A 都将小于其字母表中的任何字符,但 ascii z 永远不会小于 ŞşÇçÖö 或任何重音字符....

于 2013-02-08T00:19:29.320 回答
1

由于您使用的是 10.6 未附带的 2.7.3,因此您显然已经安装了一些第三方 Python。

如果您查看“Mac OS X 64-bit/32-bit x86-64/i386 Installer (2.7.3) for Mac OS X 10.6 and 10.7”安装程序的 Python 2.7.3下载页面,它会显示:

您可能需要更新的 Tcl/Tk 安装来运行 IDLE 或使用 Tkinter,有关说明,请参阅注释 2。

在注释 2 下:

这里有关于 Mac OS X 上的 IDLE、Tkinter 和 Tcl/Tk 的重要信息。此外,在 Mac OS X 10.6 上,如果您需要构建仅安装了 32 位 Python 的 C 扩展模块,则需要 Apple Xcode 3,而不是 4。64 位/32 位 Python 可以使用 Xcode 3或 Xcode 4。

如果您点击链接,它会解释 10.6 附带的 Tcl/Tk 版本的问题。请注意,在下表中,特别不推荐使用 Apple 8.5.7。

如果您想在 10.6 上将 IDLE 与非 Apple Python 一起使用,图表建议安装ActiveTcl 8.5.13

该页面没有确切解释问题是什么,但如果我没记错的话,每当 TkInter 在某些情况下收到非 ASCII 字符时,Apple 的 Tk 就会崩溃,他们可以为 IDLE 想出的最佳解决方法就是拒绝那些字符,正如你所看到的。

如果您使用的是不同的 Python 2.7.3(Enthought、ActiveState、Homebrew、MacPorts、手工构建等),他们大多没有关于这个问题的完整文档,但同样的修复可能会起作用。

我相信 10.6 也是 Apple 开始发布相当现代的 Python 版本和一个可用的 IDLE 的时候,所以你可能只想使用它而不是一开始就使用第三方 Python。(但是,我可能记错了,这可能仅适用于 10.7 及更高版本。)

于 2013-01-28T11:27:32.417 回答