2017-03-31 8 views
2

에코없이 Windows에서 IDLE 터미널에 비밀번호를 입력하고 싶습니다.IDLE에서 getpass.getpass()의 에코 꺼짐

일반적으로 입력하는 암호는 기능 getpass.getpass()를 사용하여 파이썬으로 가능하지만, IDLE에서 다음과 같은 경고 메시지가 온다 : IDLE는 SYS를 대체하기 때문에 내가 발견

GetPassWarning: Can not control echo on the terminal. 
Warning: Password input may be echoed. 

, 이것은이다. 다른 객체를 가진 stdin :

if sys.stdin is not sys.__stdin__: 
    return fallback_getpass(prompt, stream) 

그러나 해결책을 찾지 못했습니다. 에코없이 IDLE 단말기에 비밀번호를 입력하는 방법은 누구에게 있습니까?

답변

2

IDLE 내부에 다소 익숙한 IDLE 관리자로서 문자 디스플레이를 억제 할 수는 있지만 IDLE 코드를 크게 변경하지 않고 input('prompt')에 대한 응답으로 동작을 변경하지는 않는다고 생각하지 않습니다.

하지만 unix_getpass 중 하나를 호출하기 때문에 심지어는 getpass.getpass에 대한 불충분 한 것, win_getpass, 또는 default_getpass우회 표준 입력 처음 두 사용 system_specific 낮은 수준의 기능을합니다.

디자인 의도면에서 : IDLE은 그 이름에서 알 수 있듯이 프로그램 개발 환경입니다. 프로그램을 정상적으로 개발하고 때로는 IDLE을 거치지 않고 Python에서 직접 실행해야합니다. 파이썬은 일반적으로 터미널 창에 연결되어 실행됩니다. IDLE의 쉘은 tkinter 텍스트 위젯을 기반으로합니다.이 위젯은 터미널이 아닌 여러 줄 편집기입니다. 이 때문에 한 번에 한 줄만 입력하는 것이 아니라 전체 줄을 입력, 회수 및 편집 할 수 있습니다.