у объекта 'module' нет атрибута 'gethostbyname' ошибка google app engine - PullRequest
0 голосов
/ 15 марта 2012

Получил твипный пример от здесь .

Попробовал запустить на Google App Engine версии 1.6.3 на Mac Lion, но я получаю ошибку

'module' object has no attribute 'gethostbyname'

Status: 200 OK Content-Type: text/html; charset=utf-8 Cache-Control:
no-cache Expires: Fri, 01 Jan 1990 00:00:00 GMT Content-Length: 0

Есть идеи, что может быть причиной этого?

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Предположительно, вы пытаетесь использовать функцию gethostbyname в модуле сокета, которая не поддерживается в AppEngine. См. документы (ср. «Песочница», выделение ниже моего):

Разрешить App Engine распределять запросы на приложения по несколько веб-серверов, и для предотвращения вмешательства одного приложения с другой, приложение запускается в ограниченной «песочнице» среда. В этой среде приложение может выполнять код, хранить и запрашивать данные в хранилище данных App Engine, используйте App Engine почта, выборка URL-адресов и службы пользователей, а также проверка веб-запроса пользователя и подготовить ответ.

Приложение App Engine не может:

  • запись в файловую систему. Приложения должны использовать хранилище данных App Engine для хранения постоянных данных. Чтение из файловой системы разрешено, и все файлы приложения, загруженные вместе с приложением, имеется.
  • открыть сокет или получить доступ к другому хосту напрямую. Приложение может использовать службу извлечения URL-адреса App Engine для выполнения запросов HTTP и HTTPS. к другим хостам через порты 80 и 443 соответственно.
  • порождает подпроцесс или поток. Веб-запрос к приложению должен быть обработан в одном процессе в течение нескольких секунд. Процессы, которые занимает очень много времени, чтобы ответить прекращаются, чтобы избежать перегрузки веб-сервер.
  • совершать другие виды системных вызовов.
0 голосов
/ 15 марта 2012

Какой бы модуль, по вашему мнению, не был у вашего gethostbyname объекта, его нет.Вы не показываете свой код или даже полную ошибку, поэтому невозможно сказать вам больше.

...