Не удалось создать суперпользователя с Django manage.py
Попытка создать суперпользователя для моей базы данных:
manage.py createsuperuser
Получение грустного рекурсивного сообщения:
Создание суперпользователя пропущено из-за отсутствия работы в TTY. Вы можете запустить manage.py createsuperuser
в своем проекте, чтобы создать его вручную.
Серьезно Django? Серьезно?
Единственная информация, которую я нашел для этого, была приведена выше, но она не работала:
Невозможно создать суперпользователя в django из-за отсутствия работы в TTY
И этот другой здесь, который в основном тот же:
Невозможно создать суперпользователя Django
Ответы
Ответ 1
Если вы запустите
$ 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.
из Git Bash и обратитесь к приведенному выше сообщению об ошибке, попробуйте добавить winpty
i.e, например:
$ winpty python manage.py createsuperuser
Username (leave blank to use '...'):
Чтобы иметь возможность запускать команды python
, как обычно, в Windows, а также то, что я обычно делаю, это добавить строку псевдонима в файл ~/.profile
i.e.
MINGW64 ~$ cat ~/.profile
alias python='winpty python'
После этого либо отправьте файл ~/.profile
, либо просто перезапустите терминал, а начальная команда python manage.py createsuperuser
должна работать как ожидалось!
Ответ 2
Я собираюсь предположить, что если вы используете manage.py createsuperuser
, а не python manage.py createsuperuser
, вы используете команду из среды IDE или какой-либо другой странной среды. Попробуйте запустить python manage.py createsuperuser
вне вашей среды разработки, и он должен работать. В идеале вы бы использовали виртуальную среду или virtualenvwrapper.
Ответ 3
У меня была такая же проблема при попытке создать суперпользователя в контейнере докера с помощью команды: sudo docker exec -i <container_name> sh
. Добавление опции -t решило проблему:
sudo docker exec -it <container_name> sh