Python getpass.getpass()函数调用挂起

Jus*_*ang 5 hang getpasswd python-2.7

我试图得到一个提示,询问我的密码,但是当我尝试调用getpass.getpass()它时,它就冻结了。我在Canopy上使用Python 2.7在Windows 7 64位上运行。

import sys
import getpass

p = getpass.getpass()
print p
Run Code Online (Sandbox Code Playgroud)

Jus*_*ang 5

Python“有效冻结,因为它无法接收来自标准输入的输入”。参见https://support.enthought.com/entries/22157050-Canopy-Python-prompt-QtConsole-Can-t-run-getpass-or-interactive-OS-shell-commands-or-Windows-process

解决方法是使用其他解释器。我改用IDLE并解决了这个问题。


edi*_*edi 5

Python“有效冻结,因为它无法从标准输入接收输入”是正确的,但是,对于 Windows,您可以在命令前加上winpty. 然后可以在启动时正确输入密码,如下所示:

winpty python fileToExecute.py
Run Code Online (Sandbox Code Playgroud)

winpty提供了一个类似于 Unix pty-master 的接口,这种方式也可以从 Windows 终端进行通信。