“GetPassWarning: Can not control echo on the terminal” when running from IDLE

半世苍凉 提交于 2021-02-08 11:16:03

问题


When I run this code:

import getpass

p = getpass.getpass(prompt='digite a senha\n')
if p == '12345':
    print('YO Paul')
else:
    print('BRHHH')
print('O seu input foi:', p) # p = seu input

I got this warning:

Warning (from warnings module):
   File "/usr/lib/python3.4/getpass.py", line 63
    passwd = fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal. Warning: Password input may be echoed.

回答1:


Use an actual terminal -- that is, an environment where stdin, stdout and stderr are connected to /dev/tty, or another PTY-compliant device.

The IDLE REPL does not meet this requirement.




回答2:


Run your code in terminal, instead of the IDE. you will see that there is no more warning there. To run your code, enter this command in terminal:

python3 your_program.py



回答3:


Rather than deal with changing the current working directory in a terminal that has not started Python (which would mean you type something like python3 script.py--and it will fail unless the current working directory is already specified), start Python in your terminal and run this one-line command:

exec(open('C:\folder\script.py').read())

where you change the path string 'C:\folder\script.py' to match wherever your file is located on disk (the string does need to be specified with quotes).




回答4:


use cmd ie. command prompt and then run the file in it.

like:

python abc.py


来源:https://stackoverflow.com/questions/52952229/python-3-getpass-getpass-is-echoing-password-nothing-seems-to-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!