在Python中输入隐藏密码

9

我想使用:

import getpass
password = getpass.getpass("Enter your password:")
print password

在winx64上使用Python 2.7时... 第二行代码卡住了。 我看不到弹出窗口:“输入您的密码:”


2
语法看起来没问题,你有检查过是否存在关于这个的未解决的bug报告吗? - Rob
2
这不会弹出对话框,而是在控制台内提示。 - Sven Marnach
2
如果一个程序在提示用户输入时“挂起”,通常意味着提示被打印在你看不到的地方,并且正在等待输入。 - HardlyKnowEm
1
如果这是你的整个代码,那么你是如何运行它的?从脚本中调用还是直接在 IDE 中运行?无论哪种方式,在我的 Win x64 Python 2.7 环境下,使用这些准确的代码行,我可以在命令行上得到“请输入密码:”的提示,并且会得到预期的行为。 - PenguinCoder
@penguincoder...已经从CLI MS-DOS命令行检查过了,可以正常工作。 - Merlin
显示剩余4条评论
2个回答

3
根据您上面的评论,实际上您正在Spyder中使用ipython。我在Spyder中遇到的唯一问题是在他们的Google代码页面上。这个问题不完全与您的问题相同,但在评论中包含以下代码片段:
def spyder_getpass(prompt='Password: '):
  set_spyder_echo(False)
  password = raw_input(prompt)
  set_spyder_echo(True)
  return password

尝试使用上述方法(使用 raw_input 而不是 getpass)获取所需的密码。


无法工作,我想要的只是输入的密码不被显示。我不想获取密码... 'set_''s 没有起作用。 - Merlin
@merlin,你能解释一下为什么上面的代码不能输入并且没有回显吗?当你在代码中请求密码时,可以使用上述函数。例如:userpassword = spyder_getpass()等等。不要调用自己的input或与getpass有关的任何内容。 - PenguinCoder
使用上述代码,并通过spyder_getpass()调用它,我遇到了错误...回溯(最近的调用最先):文件“C:\ Python27 \ Scripts \ untitled6.py”,第14行,在<module>中, spyder_getpass(),文件“C:\ Python27 \ Scripts \ untitled6.py”,第9行,在spyder_getpass中 set_spyder_echo(False)。NameError:全局名称'set_spyder_echo'未定义。 - Merlin
2
请查看链接到code.google.com的帖子底部(#5),其中指出:“这需要一个小时来实现。但我不知道什么时候会有这么多时间来做这件事。” 暗示不存在set_spyder_echo函数。 - Air

2

正如其他评论所指出的那样,您必须在Power Shell中运行此脚本,才能看到"输入您的密码:"文本并能够输入密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接