• Ошибка при запуске сервера Django. Что делать?

    deepblack
    @deepblack Куратор тега Django
    Имя хоста написано кириллицей и Python 3.4 или старее?
    Windows: socket.gethostbyaddr(name) fails for non-ASCII hostname
    bugs.python.org/issue26227

    • Обновить Python
    • Переименовать хост
    • Либо запускать Django передав ему ip адрес вместо имени хоста python manage.py runserver 127.0.0.1:8000
    UPD:

    я попробовал воспроизвести подобную ошибку в среде Win 10 (в VirtualBox) и у меня получилось только в случае
    если в файле hosts присутствует алиас с кириллицей и локаль Windows русская.
    spoiler
    5cfb3a55d8bd0793644215.png5cfb39ec9a939231168766.png

    Если удалить русский, оставив только английский (на русском только интерфейс системы), то всё ок.

    Так-же не удалось воспроизвести ошибку если при запуске указывать ip хоста как 127.0.0.2
    python manage.py runserver 127.0.0.2:8080
    При условии, что в hosts нет алиаса с кириллицей для него.

    На чистой системе (установлены только Python 3.7.2 и Pycharm Community, русская локаль) подобной ошибки нет.

    Заглянул в исходники socket.py и socketmodule.c
    Скорее всего данная особенность связаны с этой частью исходного кода Python на C, а именно PyUnicode_DecodeFSDefault
    #ifdef MS_WINDOWS
        /* Issue #26227: gethostbyaddr() returns a string encoded
         * to the ANSI code page */
        return PyUnicode_DecodeFSDefault(name);
    #else
        /* Decode from UTF-8 */
        return PyUnicode_FromString(name);
    #endif


    Далее, если имя хоста не написано кириллицей и в hosts нет кириллицы следует вывод, что с высокой долей вероятности дело в стороннем софте(антивирус, кривой кряк и т.д.).
    Ответ написан