簡體   English   中英

Python 交互模式歷史和方向鍵

[英]Python interactive mode history and arrow keys

我想知道是否有人可以解釋為什么突然在 Python 交互模式下所有箭頭鍵都失效了?

例如,當我通過命令歷史按下向上按鈕到 go 時,我得到“^[[A”。 與任何其他箭頭鍵相同。

我不知道為什么會發生這種情況,並且它之前可以正常工作(在 OS X Snow Leopard 上)。 有誰知道解決這個問題的方法?

非常感謝,

G

如果您使用的是自制軟件,這是一個簡單的解決方法:

brew uninstall python
brew uninstall readline
brew install readline  --universal
brew install python

為我修復它(運行OS X Mavericks 10.9.5)

我終於搞定了這個。 我只需要使用easy_install和游標安裝readline,並且退格開始神奇地工作。

sudo /opt/local/bin/easy_install-2.5 readline

你沒有說你正在使用哪種Python,但你提到的症狀確實通常是由Python沒有使用readline支持構建的。 目前,OS X上的Python可以構建為使用GNU readline庫或Apple提供的editline庫(AKA libedit )。 您可以使用以下兩個命令來准確顯示您正在使用的Python。 如果這無法幫助您弄清楚發生了什么,請編輯您的問題以顯示這些命令的輸出。

這是一個示例,顯示OS X 10.6上最近的MacPorts Python 2.6:

$ python -c 'import sys;print(sys.version);print(sys.executable)'
2.6.5 (r265:79063, Jul 15 2010, 01:53:46) 
[GCC 4.2.1 (Apple Inc. build 5659)]
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python

$ otool -L $(python -c 'import readline; print(readline.__file__)')
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/readline.so:
    /opt/local/lib/libreadline.6.1.dylib (compatibility version 6.0.0, current version 6.1.0)
    /opt/local/lib/libncursesw.5.dylib (compatibility version 5.0.0, current version 5.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)

路徑前綴/opt/local/是MacPorts安裝軟件的默認位置, otool的輸出表示此Python的readline模塊動態鏈接到安裝了MacPorts的GNU readline庫。

當您沒有readline支持時,通常會顯示此行為。 如果您使用的是MacPorts,請嘗試使用port install readline ,看看它是否會修復它。 您還可以查看此頁面以獲得進一步的解釋。

(也很有用:一些程序即使存在於系統上也不使用readline 。你可以使用rlwrapport install rlwrap )強制它。例如: rlwrap ocaml -init code.ml將啟動OCaml,讀取code.ml,並啟動REPL並支持readline)

命令

brew install readline

為我工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM