Ahm*_*gih 6 python spyder getpass
我正在尝试使用 getpass 来隐藏输入,但它只是给了我这个错误:
“警告:QtConsole 不支持密码模式,您输入的文本将可见。”
我正在使用 Spyder。这是我的代码:
import getpass
pswd = getpass.getpass('Password:')
if pswd== 'whatever':
print ('\nACCESS GRANTED')
else:
print('\nACCESS DENITED')
Run Code Online (Sandbox Code Playgroud)
根据 Carlos Cordoba(Spyder 开发人员)对重复但官方未回答的问题的评论,您收到的警告是 Spyder/QtConsole 的限制,而不是getpass。他建议在 Spyder 中使用外部终端:
[没有解决方法]将在 Spyder 中运行。您可以转至并选择名为“使用外部终端”
Run > Configuration per file > Console的选项。Execute in an external terminal
我继续根据 @Carlos Cordoba 评论编写了下面的小片段,因为 Spyder 基于 PyQt,所以您肯定拥有该包:
def prompt_password(user):
"""
Parameters
----------
user : user name
Returns
-------
text : user input password
"""
from PyQt5.QtWidgets import QInputDialog, QLineEdit, QApplication
from PyQt5.QtCore import QCoreApplication
# Let's avoid to crash Qt-based dev environment (Spyder...)
app = QCoreApplication.instance()
if app is None:
app = QApplication([])
text, ok = QInputDialog.getText(
None,
"Credential",
"user {}:".format(user),
QLineEdit.Password)
if ok and text:
return text
raise ValueError("Must specify a valid password")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5032 次 |
| 最近记录: |