파이썬을 대화식으로 실행 한 후 OS-X 터미널이 이상하게 동작합니다.


11

os-x 터미널에서 python repl (2.7.10)을 실행하고 종료 한 후 터미널은 더 이상 입력 된 입력을 반향하지 않으며 다른 이상한 일이 발생합니다. python다시 실행 exit()하면 터미널이 복원 된 것 같습니다. 이제 탭을 닫고 새 탭을 열었으므로 광범위하게 테스트하지 않았습니다.

나는 이것이 터미널 설정과 관련이 있다고 생각하지만, 그것은 최근의 일이며 기억 나는 것을 변경하지 않았습니다. macports일부 콘솔 라이브러리와 일치하지 않는 종속성과 관련이있는 경우 Python이로 설치됩니다 . 2.7.10은 얼마 전에 설치되었으며 설치 후에는 발생하지 않았습니다.

너클에 균열이 생기고 열립니다terminal

[~]: virtualenv-2.7 venv-test
[~]: source venv-test/bin/activate
[~]: python
>>> ^D>>>       *(press ctrl-d, the 2nd >>> is strange)
[~]:            *(type something like `ls-l`, nothing shows on console)
[~]: -bash: ls-l: command not found`

또한, 파이썬을 다시 실행하고 ctrl-d결과를 출력하면 :

>>> ^D           (ctrl-d, then hit enter, doesn't exit)
>>> ^D           (...)
>>> ^D           (...)
>>> exit()       (typing exit() quits the session)
>>> [~]: 

macports를 통해 Python을 설치하는 이유는 무엇입니까? Python v2.7.10은 El Cap에 포함되어 있으며 Yosemite라고 생각합니다. 특히 Mac Ports에서 얻는 것이 있습니까?
Benjamin Schollnick

글쎄, 2.7. mac과 함께 제공된 것보다 큰 것을 사용하십시오. 시스템 파이썬 (UNIX의 표준 문제)을 만지지 말고 2.7을 실행하고 사용자 정의 GIS 옵션을 컴파일하고 mtmt 패키지와 3.4를 동시에 실행하십시오. 그러나 당신이 해야하는 진정한 이유는 시스템 파이썬으로 fsck하지 않기 때문입니다.
Andrew Backer

파이썬 응용 프로그램이 일종의 창 관리를 수행합니까? (예 : 저주, NCurses 등 사용)
Benjamin Schollnick

입력 python한 다음 응용 프로그램이 없습니다ctrl-d
Andrew Backer

답변:


12

이 문제와 관련하여 MacPorts에 공개 버그가 있습니다.

https://trac.macports.org/ticket/48807

"+ readline"옵션으로 파이썬을 설치하면 문제를 해결할 수 있으며 직접 확인하여 문제를 해결할 수 있습니다.

sudo port uninstall python27
sudo port install python27 +readline

9
버그 보고서를 찾아 주셔서 감사합니다. FpyWy, python27을 제거 할 수는 없습니다 (일반적으로 너무 많은 패키지가 의존합니다). 따라서 다시 빌드해야합니다. 를 실행하십시오 sudo port selfupdate && sudo port clean python27 && sudo port install python27 +readline. 로컬 트리가 오래된 경우 + readline 변형을 사용할 수 없습니다. 는 selfupdate그 해결됩니다.
Andrew Backer

8

터미널 모드는 응용 프로그램에서 원시 또는 중단으로 설정되며 비정상적으로 종료되면 모드가 복원되지 않습니다. 특히이 경우 Enter키 (control / M 일명 캐리지 리턴)를 줄 바꿈 (control / J 일명 줄 바꿈)에 매핑하는 기능 이 종종 비활성화됩니다. 다음을 입력하여 반품 관련 문제를 해결할 수 있습니다

stty sane

뒤에 controlJ

명령을 다시 입력하면 backspace일반적인 기능에 할당되지 않을 수 있지만 명령을 다시 입력 할 수 있습니다.

일부는 reset명령 사용을 권할 수도 있지만 주어진 증상은 해당 프로그램의 기능과 관련이 없습니다.

더 읽을 거리


stty echo문제를 해결하는 것 같습니다 ( stackoverflow.com/questions/32475928/python3-messes-up-terminal ). 그것이 모든 것을 돌보고 있는지 확실하지 않습니다. 구문 오류로 인해 새 줄을 수동으로 입력하여 새 명령을 입력해야하기 때문에 파이썬에 약간의 문제가 있다고 생각합니다. 그렇지 않아야합니다.
Andrew Backer

이 방법으로 문제를 해결할 수는 없지만 적어도 사실 후에 문제를 해결할 수 있습니다. 지금은 충분합니다. 이런 일이 발생 하는지 알 수있는 방법이 있다면 알고 싶습니다.
Andrew Backer

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.