pycharmでgetpass.getpass()ジャム
pycharmでgetpass.getpass()が詰まって実行しないのはどんな問題ですか?
python pycharm
まず、次のコードがコマンドラインとeclipseで正常に動作することを宣言します.
import getpass print "nihao1"d = getpass.getpass()print“nihao 2”print“d=”、d実行プログラムはnihao 1を印刷するだけで、それから止まらない入力ができて、引き続き下へ実行しないで、プログラムはずっとここにかかって、私はwindowsシステムです
そしてgetpassモジュールのソースコードを見てgetpassを見つけました.getpass()の呼び出しはgetpassである.win_getpass()は、この方法にはc=msvcrt,getch()の行がある.プログラムはここで動かなくなった.私が见つけることができる问题はここまでで、、、次もどのように解决するべきなことを知らないで、大神を求めます!!!
PS:さっきまたソースコードを研究しました.win_getpass()メソッドソース:print文は私が自分で調整したときに追加しました.def win_getpass(prompt='Password: ', stream=None): """Prompt for password with echo off, using Windows getch()."""print "hahaha i am in "if sys.stdin is not sys.__stdin__: print "if sys.stdin is not sys.__stdin__:"return fallback_getpass(prompt, stream) import msvcrt print "import msvcrt"for c in prompt: print "for c in prompt:",c msvcrt.putch(c) pw = ""while 1: print "while 1:"c = msvcrt.getch() print "is here "print c if c == '\r' or c == '': print "if c == '\r' or c == '':"break if c == '\003': print "if c == '\003':"raise KeyboardInterrupt if c == '\b': print "if c == '\b':"pw = pw[:-1] else: print "else:"pw = pw + c msvcrt.putch('\r') msvcrt.putch('') print "pw:", pw return pw
4行目にif sysという言葉があります.stdin is not sys.__stdin__: Windowsの下pycharmでは、ソースコードを実行するとfalseが返されるので、プログラムはif文をスキップして下に実行し続け、while 1:ループに入り、最初に言ったc=msvcrt.に引っかかります.getch()ここです.私は上のif文を変更して、is notをisに変更して、意外にも実行することができます.D:Python 27libgetpass.py:94: GetPassWarning: Can not control echo on the terminal. return fallback_getpass(prompt, stream) Warning: Password input may be echoed.
私はこの程度しかできません.なぜそうなるのか、なぜそのIf文が働いているのか、これはpycharmと何の関係があるのか、私は知りません.だから、大神の指示を求めて、言ってください.だから、その原理は何ですか.どうすればpycharmの中で正常に動作しますか.ソースコードはコマンドラインとeclipseの中で正常ですから.ありがとう!
転載先:https://www.cnblogs.com/fmgao-technology/p/9036877.html
python pycharm
まず、次のコードがコマンドラインとeclipseで正常に動作することを宣言します.
import getpass print "nihao1"d = getpass.getpass()print“nihao 2”print“d=”、d実行プログラムはnihao 1を印刷するだけで、それから止まらない入力ができて、引き続き下へ実行しないで、プログラムはずっとここにかかって、私はwindowsシステムです
そしてgetpassモジュールのソースコードを見てgetpassを見つけました.getpass()の呼び出しはgetpassである.win_getpass()は、この方法にはc=msvcrt,getch()の行がある.プログラムはここで動かなくなった.私が见つけることができる问题はここまでで、、、次もどのように解决するべきなことを知らないで、大神を求めます!!!
PS:さっきまたソースコードを研究しました.win_getpass()メソッドソース:print文は私が自分で調整したときに追加しました.def win_getpass(prompt='Password: ', stream=None): """Prompt for password with echo off, using Windows getch()."""print "hahaha i am in "if sys.stdin is not sys.__stdin__: print "if sys.stdin is not sys.__stdin__:"return fallback_getpass(prompt, stream) import msvcrt print "import msvcrt"for c in prompt: print "for c in prompt:",c msvcrt.putch(c) pw = ""while 1: print "while 1:"c = msvcrt.getch() print "is here "print c if c == '\r' or c == '': print "if c == '\r' or c == '':"break if c == '\003': print "if c == '\003':"raise KeyboardInterrupt if c == '\b': print "if c == '\b':"pw = pw[:-1] else: print "else:"pw = pw + c msvcrt.putch('\r') msvcrt.putch('') print "pw:", pw return pw
4行目にif sysという言葉があります.stdin is not sys.__stdin__: Windowsの下pycharmでは、ソースコードを実行するとfalseが返されるので、プログラムはif文をスキップして下に実行し続け、while 1:ループに入り、最初に言ったc=msvcrt.に引っかかります.getch()ここです.私は上のif文を変更して、is notをisに変更して、意外にも実行することができます.D:Python 27libgetpass.py:94: GetPassWarning: Can not control echo on the terminal. return fallback_getpass(prompt, stream) Warning: Password input may be echoed.
私はこの程度しかできません.なぜそうなるのか、なぜそのIf文が働いているのか、これはpycharmと何の関係があるのか、私は知りません.だから、大神の指示を求めて、言ってください.だから、その原理は何ですか.どうすればpycharmの中で正常に動作しますか.ソースコードはコマンドラインとeclipseの中で正常ですから.ありがとう!
転載先:https://www.cnblogs.com/fmgao-technology/p/9036877.html