2017-03-31 10 views
2

エコーなしでWindowsのIDLE端末にパスワードを入力したいと思います。IDLE内のgetpass.getpass()のエコーをオフにする

通常のパスワードを入力すると、関数getpass.getpassを使ってPythonで可能である()が、IDLEに、次の警告メッセージがアップしています:

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

を私はIDLEはSYSを置き換えるためである、分かりました。別のオブジェクトのstdin:

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

しかし、私は解決策を見つけることができませんでした。エコーなしで誰かがIDLE端末にパスワードを入力するための答えや別の方法を持っていますか?

答えて

2

IDLEの内部についてよく知られているメンテナーとして、私は文字の表示を抑えることはできますが、それ以外の場合はIDLEコードの大きな変更なしにに応答して動作を変更することはできません。

しかし、unix_getpassの一つ、win_getpass、又はdefault_getpass、最初の2つの使用バイパス STDIN system_specific低レベルの関数を呼び出すためにも、それはgetpass.getpassために不十分です。

設計意図の観点から:IDLEは、その名前が示すように、プログラム開発環境です。通常はプログラムを開発し、時にはIDLEを経由せずに直接Pythonで実行する必要があります。 Pythonは通常、ターミナルウィンドウに添付されて実行されます。 IDLEのシェルはターミナルではなく、複数行のエディタであるtkinter Textウィジェットに基づいています。このため、一度に1行ではなく完全な複数行の文を入力、呼び出し、編集することができます。

関連する問題