问题
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