Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.
like image 863
Paul Sigonoso Avatar asked Aug 10 '16 16:08

Paul Sigonoso


4 Answers

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.

like image 106
Charles Duffy Avatar answered Nov 08 '22 09:11

Charles Duffy


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
like image 32
Reyhaneh Trb Avatar answered Nov 08 '22 07:11

Reyhaneh Trb


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).

like image 2
3 revs Avatar answered Nov 08 '22 07:11

3 revs


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

like:

python abc.py
like image 1
Dinokor Avatar answered Nov 08 '22 09:11

Dinokor