OS X의 Python 쉘에서 "b"문자를 입력 할 수 없습니다


8

OS X의 Python 쉘에서 "b"문자에 문제가 있습니다. "b"를 입력 할 수 없지만 "B"는 제대로 작동했습니다.

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


"입력 할 수 없습니다"는 무슨 뜻입니까? Shift 키를 누르지 않으면 b 키를 누르는 것이 실제로 무엇입니까? 또는 버튼을 눌러도 아무런 효과가 없습니까? 또는 "b"만 포함 된 줄에 오류 메시지가 표시됩니까?
Joachim Sauer 2018 년

정확히 무엇입니까 ? 정확히 무엇을 / 타이핑하고 있습니까, 정확히 무슨 일이 있으며, 오류 메시지는 무엇입니까 (있는 경우)?

다른 문자가 영향을받지 않으면 키보드의 하드웨어 문제인 것 같으므로 슈퍼 유저로 마이그레이션해야합니다.
pavium

"b"문자를 누르면 아무 효과가없고 "b"문자를 입력하지 않지만 콘솔에서 "B"문자 (Shift + b)를 누른 다음 "B"문자 유형을 누르면

2
이 질문 도 참조하십시오 .
키이스 톰슨

답변:


9

귀하의 문제 라인 .pythonstartup은 다음과 같습니다.

 readline.parse_and_bind("bind ^I rl_complete") # darwin libedit

이것은 .pythonstartup그것을 고칠 것입니다 ...

try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    if 'libedit' in readline.__doc__:
        readline.parse_and_bind("bind ^I rl_complete")
    else:
        readline.parse_and_bind("tab: complete")

그것은 나에게 같은 문제를 해결했다!
zmo

+1 어제 homebrew에서 파이썬을 설치하고 오늘 아침 에이 문제가 발생했습니다. 내 파이썬 시작 파일을 업데이트하고 모든 것이 다시 좋습니다. 매우 특이한 (그리고 매우 이상한) 부작용입니다.
Seth

2

첫째, 파이썬 2.7.1을 2.7.3으로 업데이트 할 때까지 이것은 발생하지 않았습니다. 즉, 수정 프로그램이 진행 중입니다.

오래된 줄 :

if(sys.platform == 'darwin'): #FIX

줄 바꾸기 :

if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX

~ / .pythonrc의 전체 코드

import atexit
import os
try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    import sys
    if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX
    # OSX
        readline.parse_and_bind ("bind ^I rl_complete")
    else:
    # Linux
        readline.parse_and_bind("tab: complete")

historyPath = os.path.expanduser("~/.pyhistory")

def save_history(historyPath=historyPath):
    readline.write_history_file(historyPath)

if os.path.exists(historyPath):
    readline.read_history_file(historyPath)

atexit.register(save_history)
del atexit, save_history, historyPath

1

나는 같은 문제가 있습니다. Snow Leopard에서 MacPorts 버전의 Python을 사용할 때 발생합니다.

Mac OS X과 함께 제공되는 Apple Python에는이 문제가 표시되지 않습니다. 따라서 해결 방법은 PYTHONPATHMacPorts의 패키지를 가리 키도록 설정해야 합니다.

/opt/local/lib/python/site-packages:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/ 

(또는 다른 Python 버전) Apple의 Python을 사용하십시오.


1

불행히도 해결 방법은 현명한 방법이 아닙니다.

Apple은 업그레이드 및 기타 기능을 수행 할 때 버전이 변경되지 않았다고 가정합니다. 대신, 파이썬을 업그레이드하거나 확장하려면 로컬 /opt또는 홈 폴더 아래에 로컬 버전을 설치하도록 확장하는 것이 좋습니다 .

나도 같은 문제가 있으며 MacPorts 버전의 파이썬을 사용하지 않습니다.


최신 MacBook Air (3 세대)에서 실행되는 Mac OX X Lion vpython에서 www.vpython.org 의 최신 버전의 Visual python을 사용하고 있습니다.

최신 바이너리와 지침을 사용하여 vpython을 설치했습니다. 설치 프로그램과 함께 제공되므로 포인트 앤 클릭이 가능합니다. 이것은 Python 2.7.1의 수정 된 버전입니다. 32 비트 버전입니다. (64 비트로 이식하지 않았다고 생각합니다). 그런 다음 VPython-Mac-Py2.7-5.71을 설치했습니다. 나는에서 scipy하여이 따라 www.scipy.org 과에서하기 matplotlib matplotlib.sourceforge.net 이러한 설치는 설치 프로그램을 사용하는 모든.

개발 도구, 유휴 또는 vpython 변형 인 vidle에서 파이썬을 실행할 때 아무런 문제가 없습니다. 터미널을 열고 bash 쉘에서 파이썬을 실행하면 쉘이 키보드의 "b"키를 인식하지 못합니다. '문자 b'를 입력하는 대신 '벨'소리를냅니다. 그러나 문자 'B'를 입력 할 수 있습니다. 이 키가 표시되지 않은 일부 잘못된 '문자', 아마도 오래된 ASCII 코드의 '종'문자에 매핑 된 것 같습니다.

에뮬레이션을 xterm, vt100, vt102로 변경하려고했습니다. 또한 UTF-8을 사용하는 것과 같은 다른 인코딩 체계를 가지고 놀았습니다. 나는 또한 command-b와 같은 다른 특수 키 조합을 눌렀습니다.

내 유일한 해결 방법은 유휴 또는 비들에서 스크립트를 작성하는 것입니다.

이것이 문제를 분명히하는 데 도움이되기를 바랍니다.


나는 이것에 대해 조금 더 일했다 ... 다른 사람들이 다른 파이썬 인터페이스와 비슷한 문제가있는 것처럼 보입니다. 내 시스템에는 파이썬이 시작될 때 구문 분석되는 .pythonrc.py 파일이 있습니다 (PYTHONSTARTUP이 가리키는). 이 파일에는 두 개의 모듈에 rlcompleter 및 readline이로드됩니다. 그런 다음 readline.parse_and_bind ( "bind -v")를 호출합니다. 이 호출은 쉘에서 바인딩을 복사하여 readline 모듈을 초기화합니다 (bash 쉘에 들어가서 'bind -v'(따옴표 없음)를 입력하여 볼 수 있습니다). 이 중 하나가 문제를 만들어야합니다. 줄을 주석 처리하면 (앞의 # 번 위치) 문제가 사라집니다.
ga mercier

1
당신은 할 수 있습니다 편집 읽기 쉽게 만들 수 있습니다, 그것을 포함하도록 게시물을.
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.