[python] 파이썬 쉘에서 화살표 키를 누를 때 이스케이프 문자보기

대화식 파이썬 쉘과 같은 쉘에서는 일반적으로 화살표 키를 사용하여 현재 줄을 이동하거나 이전 명령 (화살표 포함) 등을 얻을 수 있습니다.

그러나 다른 컴퓨터로 ssh하고 시작 python하면 다음과 같은 세션이 나타납니다.

>>> import os
>>> ^[[A    

마지막 문자는 화살표에서 나온다. 또는 왼쪽 화살표를 사용하십시오.

>>> impor^[[D

이 문제를 어떻게 해결할 수 있습니까?

일반 bash에서는 화살표 키가 정상적으로 작동합니다. 이상한 행동은 대화 형 파이썬 (또는 펄 등) 셸에 있습니다.



답변

readline이 활성화되지 않은 것 같습니다. PYTHONSTARTUP변수가 정의되어 있는지 확인하십시오./etc/pythonstart 대화식으로 가기 전에 파이썬 프로세스가 파일을 해당 파일이 실행되어 readline / history 처리를 설정합니다.

@chown 덕분에 여기에 문서가 있습니다 : http://docs.python.org/2/tutorial/interactive.html


답변

readline패키지 를 설치 하여이 문제를 해결했습니다 .

pip install readline


답변

OS X에서는 다른 문제가 있습니다.

시스템 파이썬 셸을 사용할 때 키에는 문제가 없지만 virtualenv에 문제가 있습니다. virtualenv / readline을 다시 설치 / 업그레이드하려고 시도했지만 아무것도 수정되지 않았습니다.

내가하려고하는 동안 import readline문제 파이썬 쉘에서이 오류 메시지가 :

ImportError: dlopen(/Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so, 2): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so
Reason: image not found

원인이 /usr/local/opt/readline/lib/libreadline.7.dylib있지만 그렇지 않으므로 libreadline.6.dylib기호 링크를 만듭니다.

ln -s libreadline.7.dylib libreadline.6.dylib

문제가 해결되었습니다!


답변

OS X에서 Xcode 업데이트가 때때로 중단 readline됩니다. 해결책:

brew uninstall readline
brew upgrade python3
brew install readline
pip3 install readline

문제가 지속되면 다음을 readline사용하여 제거 pip하고 설치하십시오 easy_install.

pip3 uninstall readline
easy_install readline


답변

OS X에서 Python 3.5 및 virtualenv 사용

$ pip install gnureadline

통역사에서 :

import gnureadline

이제 화살표 키가 제대로 작동합니다.


추가 정보…

2015 년 10 월 1 일부터-readline이 더 이상 사용되지 않습니다 (source https://github.com/ludwigschwardt/python-readline )

대신 gnureadline 을 사용하십시오 ( https://github.com/ludwigschwardt/python-gnureadline 참조). )

파이썬 3.5를 사용하여 gnureadline 대신 readline을 설치하면 인터프리터에서 가져 오기를 시도한 후 오류가 발생합니다.

>>> import readline
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Users/pi/tmp/python-readline-test/.venv/lib/python3.5/readline.so, 2): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
  Referenced from: /Users/pi/tmp/python-readline-test/.venv/lib/python3.5/readline.so
  Reason: image not found


답변

나는 최근 에이 문제에 pip install readline부딪 쳤고 (mac osx에서는 작동하지 않음) 많은 것을 읽은 후 pip install gnureadline만족하지 못했습니다. 이제 모든 파이썬 콘솔에서 화살표 키를 사용할 수있는 설정입니다.

  1. 를 사용하여 gnureadline 설치 pip install gnureadline

이제 할 수 있고 import gnureadline화살표 키가 예상대로 작동합니다. 자동으로 작동하게하려면 다음 단계를 수행하십시오.

  1. 파일 작성 (또는 추가) ~/.startup.py :import gnureadline
  2. 파일에 추가 ~/.bash_profile:export PYTHONSTARTUP=~/.startup.py

작동하지 않지만 이전 설정에서 한 가지는 gnureadline on의 자동 가져 오기입니다 pdb.set_trace(). 누구 든지이 문제에 대한 좋은 해결책이 있다면 의견을 보내 주셔서 감사합니다.


답변

  1. readline-devel 패키지를 설치하십시오.
  2. readline 모듈로 파이썬 재 컴파일
  3. 빙고!