2015-09-11 12 views
11

cercando di creare un super utente per il mio database:Non in grado di creare super-utente con Django manage.py

manage.py createsuperuser 

Ottenere un triste messaggio ricorsiva:

creazione Superuser saltato a causa di non esecuzione in un TTY. È possibile eseguire manage.py createsuperuser nel progetto per crearne uno manualmente.

Davvero Django? Sul serio?

L'unica informazione che ho trovato per questo era quello di cui sopra, ma non ha funzionato: Unable to create superuser in django due to not working in TTY

E quest'altro qui, che è sostanzialmente la stessa: Can't Create Super User Django

+0

Stai utilizzando un ambiente virtuale? Che tipo? Stai eseguendo questo dalla riga di comando all'interno del tuo virtualenv, o in un altro modo come in un IDE? – YPCrumble

+0

@YPCrumble Esecuzione di questo da PyCharm e terminale semplice, nessun ambiente virtuale – gerosalesc

+0

Si ottiene lo stesso errore in entrambi? – YPCrumble

risposta

26

Se si esegue

$ python manage.py createsuperuser 
Superuser creation skipped due to not running in a TTY. You can run manage.py createsuperuser in your project to create one manually.
da Git Bash e faccia il messaggio di errore di cui sopra tenta di accodare winpty vale a dire, ad esempio:

$ winpty python manage.py createsuperuser 
Username (leave blank to use '...'):

Per essere in grado di eseguire python comandi come al solito sulle finestre, nonché quello che normalmente fare è aggiungendo una linea di alias per il file di ~/.profile cioè

MINGW64 ~$ cat ~/.profile 
alias python='winpty python' 

Dopo questo modo, entrambe le fonti il ​​file o s ~/.profile implica il riavvio del terminale e il comando iniziale python manage.py createsuperuser dovrebbe funzionare come previsto!

+1

che funziona. Grazie – Young

2

Sono andando a indovinare che se stai usando manage.py createsuperuser e non python manage.py createsuperuser stai eseguendo il comando da dentro un IDE o qualche altro ambiente strano. Prova a eseguire python manage.py createsuperuser al di fuori del tuo IDE e dovrebbe funzionare. Idealmente staresti usando uno virtual environment o virtualenvwrapper.

+1

Ho omesso il python perché sto chiamando il percorso assoluto alla mia installazione di python 3, il comando python punta a un python 2 nella stessa macchina – gerosalesc

+1

Nella riga di comando, se si entra nell'interprete python3 ed esegui 'import sys; print (sys.stdin.isatty()) 'cosa ottieni? – YPCrumble

+0

@YPCrumple I anche se il terminale pycharm era tty ma tu mi hai aiutato a capire che non lo era, ho usato il vecchio terminale vecchio chiaro questa volta e ha funzionato, grazie a – gerosalesc

Problemi correlati