UnicodeDecodeError с сокетом.getfqdn на сервере запуска Django в WindowsPython

Программы на Python
Ответить
Anonymous
 UnicodeDecodeError с сокетом.getfqdn на сервере запуска Django в Windows

Сообщение Anonymous »

Я создаю API Django. После переноса моего проекта на новый сервер и попытки запустить его с помощью:

Код: Выделить всё

python manage.py runserver
Я столкнулся со следующим исключением:

Код: Выделить всё

File "", line 795, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 19: invalid start byte
Я проверил свое имя хоста с помощью команды hostname в терминале. Он вернул: DESKTOP-KTU1TC2 (состоит только из символов ASCII).
Я также запускал этот код, но все работает нормально.

Код: Выделить всё

>>>import socket
>>>socket.gethostbyname('127.0.0.1')
127.0.0.1
>>>socket.gethostbyname('DESKTOP-KTU1TC2')
(some ip address)
Я также пытался явно запустить сервер с помощью:

Код: Выделить всё

python manage.py runserver 127.0.0.1:8000
Ошибка сохраняется.
Изменить:
Поэтому я добавил оператор отладки непосредственно в модуль сокета:

Код: Выделить всё

    name = name.strip()
if not name or name in ('0.0.0.0', '::'):
name = gethostname()
try:
print(name, 'THATS THE NAME')
hostname, aliases, ipaddrs = gethostbyaddr(name)
except error:
pass
Когда я запустил сервер с --verbose 3, я получил следующий результат:

Код: Выделить всё

System check identified no issues (0 silenced).
127.0.0.1 THATS THE NAME
Exception in thread django-main-thread:
Traceback (most recent call last):
File "P:\python312\Lib\threading.py", line 1073, in _bootstrap_inner
self.run()
File "P:\python312\Lib\threading.py", line 1010, in run
self._target(*self._args, **self._kwargs)
File "P:\python312\Lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "P:\python312\Lib\site-packages\django\core\management\commands\runserver.py", line 144, in inner_run
run(
File "P:\python312\Lib\site-packages\django\core\servers\basehttp.py", line 270, in run
httpd = httpd_cls(server_address, WSGIRequestHandler, ipv6=ipv6)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "P:\python312\Lib\site-packages\django\core\servers\basehttp.py", line 77, in __init__
super().__init__(*args, **kwargs)
File "P:\python312\Lib\socketserver.py", line 457, in __init__
self.server_bind()
File "P:\python312\Lib\wsgiref\simple_server.py", line 50, in server_bind
HTTPServer.server_bind(self)
File "P:\python312\Lib\http\server.py", line 138, in server_bind
self.server_name = socket.getfqdn(host)
^^^^^^^^^^^^^^^^^^^^
File "P:\python312\Lib\socket.py", line 796, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 19: invalid start byteas requested.
Похоже, что какая-то часть 127.0.0.1 интерпретируется с недопустимой кодировкой UTF-8.
Но сам IP выглядит действительным.
Сведения о среде:
Python: 3.12
Django: 5.1.4
Что мне следует попробовать, чтобы решить эту проблему? Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... on-windows
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»