2015-02-18 12 views
15

Ho trovato getpass non funziona in PyCharm. Si blocca.Come utilizzare il getpass.getpass Python in PyCharm

Infatti sembra che msvcrt.getch e raw_input non funzionino, quindi forse il problema non è con getpass. Invece con il bit "i" della gestione dello stdio di PyCharm.

Il problema è che non riesco a mettere la mia password personale in codice perché finirebbe in SVN che sarebbe visibile ad altre persone. Quindi uso getpass per ottenere la mia password ogni volta.

sulla ricerca, tutto quello che posso trovare è che "PyCharm fa di hacking cupola per ottenere Django lavorare con getpass" ma nessun indizio su cosa che hack è ....

Ho guardato getpass e utilizza msvcrt su Windows (quindi questo problema potrebbe essere solo su Windows)

La mia domanda è: c'è un workround per questo problema?

risposta

1

Una soluzione comune a questo sarebbe memorizzare le credenziali in un file contrassegnato dal VCS. Quindi:

with open('credentials.txt') as f: 
    user, pw = f.read().split('\n') # or similar 

In alternativa, averli specificati nelle variabili di ambiente. Entrambi questi metodi dovrebbero aggirare la gestione di Pyramid di stdin.

+1

pass è una parola chiave in modo da questo non funzionerà – michaelsnowden

4

Ho incontrato Pycharm CE 4.5 su Windows. La soluzione alternativa che uso è eseguire il programma in modalità di debug, quindi si ottiene una scheda della console in cui è possibile immettere la password quando si utilizza il passaggio.

1

Sfortunatamente, getpass() tende a fallire miseramente (l'ho testato con IDLE e PyScripter senza alcun successo su Python 3.4). Ti suggerirei di usare passwordbox da easygui - funziona meravigliosamente purché tu non usi ver. 0.98 (qualcosa è incasinato lì), è sicuro usare ver. 0.96.

Scarica easygui ver. 0,96, scompattarlo in una cartella temporanea, e da quella cartella installarlo con:

python setup.py install 

e utilizzare PasswordBox nel programma:

from easygui import passwordbox 
password = passwordbox("PASSWORD:") 
Problemi correlati