我的 macports python2.7 似乎以奇怪的方式与 osx 终端混淆。这就是我的意思。
键盘的确切输入是:
/opt/local/bin/python2.7<ENTER>
a = 3<ENTER>
a<ENTER>
<CTRL+D>
/opt/local/bin/python2.7<ENTER>
a = 3<ENTER>
a<ENTER>
<CTRL+D><ENTER>
exit()<ENTER>
<ENTER>
ls
以下是我在终端窗口中看到的内容:
Artems-MacBook-Pro-2 /Users/artem $ /opt/local/bin/python2.7
Python 2.7.10 (default, Aug 31 2015, 01:42:42)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 3
>>> a
>>> 3
a
>>> 3
^D>>>
Artems-MacBook-Pro-2 /Users/artem $ Python 2.7.10 (default, Aug 31 2015, 01:42:42)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 3
>>> a
>>> 3
a
>>> 3
^D
>>> exit()
>>> Artems-MacBook-Pro-2 /Users/artem $
Artems-MacBook-Pro-2 /Users/artem $ ls
如您所见,当我第一次尝试打印“a”的值时,发生了第一件奇怪的事情,即我得到
>>> a
>>> 3
<cursor here>
代替
>>> a
3
>>> <cursor here>
然后,第一次退出 python 后,终端中没有显示任何输入,即我得到:
Artems-MacBook-Pro-2 /Users/artem $ Python 2.7.10 (default, Aug 31 2015, 01:42:42)
代替
Artems-MacBook-Pro-2 /Users/artem $ /opt/local/bin/python2.7
Python 2.7.10 (default, Aug 31 2015, 01:42:42)
第二个 python 会话继续表现异常 + CTRL+D 组合键停止工作。退出第二个会话后,终端中的输入再次正常显示。
有谁知道为什么会发生这种情况以及如何解决它?
PS OSX 默认的 Python 没有这个问题,但我真的想让 macports 版本能够工作
答案1
我通过在我的系统上切换到不同的python来修复这个问题:
$ sudo port select python python27-apple
答案2
遇到了同样的问题——真的很烦人!阅读后http://bugs.python.org/issue24961,决定尝试跑步
sudo port install py27-readline
...它解决了问题,至少在我的计算机上是这样。也许有人应该向 MacPorts 提交一张票...
答案3
matplotlib
我在今年 8 月 29 日安装后也遇到了同样的问题。这让我很抓狂,所以我卸载了它:
sudo port uninstall --follow-dependents python27 @2.7.10_3+universal
我认为这个特定macports
版本的 Python 已经损坏了。
答案4
我已经确定该问题源于 ncurses。我还没有修复。我有一个使用 ncurses @5.9_2 和 ncurses @6.0_0 编译的软件,目前它非常糟糕。