Приложения не будут запускаться в GAE - "невозможно связать с localhost: 0" - программирование
Подтвердить что ты не робот

Приложения не будут запускаться в GAE - "невозможно связать с localhost: 0"

Недавно я обновил Google App Engine до 1.7.7. и с тех пор не могли запускать какие-либо приложения локально. Это включает приложения, которые работали до обновления и приложений, которые я создал с тех пор. Я не встречал никаких других ссылок на эту конкретную проблему: "Невозможно связать с localhost: 0", поэтому было бы очень полезно понять прояснение этого препятствия.

Я включаю журнал для нового приложения Hello World, которое я добавил сегодня. Использование Python 2.7 через ActivePython для OS X 10.6.8.

*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=12084 --admin_port=8007
Python command: /usr/local/bin/pythonw
INFO     2013-04-13 06:37:31,627 devappserver2.py:498] Skipping SDK update check.
WARNING  2013-04-13 06:37:31,691 api_server.py:328] Could not initialize images API; you are likely missing the Python "PIL" module.
WARNING  2013-04-13 06:37:31,692 simple_search_stub.py:977] Could not read search indexes from /var/folders/ag/ag25hkLMFEG1p0pLBBX5Mk+++TI/-Tmp-/appengine.binderror.b/search_indexes
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 193, in <module>
    _run_file(__file__, globals())
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 189, in _run_file
    execfile(script_path, globals_)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 662, in <module>
    main()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 655, in main
    dev_server.start(options)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 626, in start
    apis.start()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 151, in start
    super(APIServer, self).start()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 296, in start
    raise BindError('Unable to bind %s:%s' % self.bind_addr)
google.appengine.tools.devappserver2.wsgi_server.BindError: Unable to bind localhost:0

Обновление: я смог развернуть приложение Hello World через GAE Launcher без каких-либо проблем. Я выполнил команду errinfo -c -n GoogleAppEngineLauncher.app, которая использует включенную dtrace, а затем попыталась запустить три приложения, а затем закрыла их. Вот результат [который несколько выше меня]:

           EXEC          SYSCALL  ERR  COUNT  DESC
 GoogleAppEngine          madvise   12      1  Cannot allocate memory 
 GoogleAppEngine __disable_threadsignal    0      2 
 GoogleAppEngine           access    0      3 
 GoogleAppEngine bsdthread_register   22      3  Invalid argument 
 GoogleAppEngine            chdir    0      3 
 GoogleAppEngine   close_nocancel    0      3 
 GoogleAppEngine   fcntl_nocancel    0      3 
 GoogleAppEngine             fork    0      3 
 GoogleAppEngine    getdtablesize    0      3 
 GoogleAppEngine           getpid    0      3 
 GoogleAppEngine    open_nocancel    0      3 
 GoogleAppEngine           setsid    0      3 
 GoogleAppEngine      sigprocmask    0      3 
 GoogleAppEngine           stat64    0      3 
 GoogleAppEngine            wait4    0      3 
 GoogleAppEngine       workq_open    0      3 
 GoogleAppEngine            write    0      3 
 GoogleAppEngine          lstat64    0      4 
 GoogleAppEngine             pipe    0      6 
 GoogleAppEngine    thread_selfid    0      6 
 GoogleAppEngine     gettimeofday    0      7 
 GoogleAppEngine             dup2    0      9 
 GoogleAppEngine          madvise    0     17 
 GoogleAppEngine           munmap    0     31 
 GoogleAppEngine             mmap    0     33 
 GoogleAppEngine        sigaction    0     87 
 GoogleAppEngine      getattrlist    0    102 
 GoogleAppEngine          fstat64    0    118 
 GoogleAppEngine             open    0    118 
 GoogleAppEngine          geteuid    0    208 
 GoogleAppEngine              dup    0  10418 
 GoogleAppEngine             read    0  10532 
 GoogleAppEngine            close    0  10584 
 GoogleAppEngine workq_kernreturn    0  20752 
 GoogleAppEngine            close    9  21459  Bad file descriptor 
 GoogleAppEngine           kevent    0  72543 

Обновление 2, 16 августа: я установил новейшую версию GAE Launcher [1.8.3], и теперь все работает.

4b9b3361

Ответ 1

Для людей, которые получили Unknown key при запуске fuser -k 8080/tcp, вот решение, которое сработало для меня:

lsof -P | grep ':8080' | awk '{print $2}' | xargs kill -9

Ответ 2

ваш сокет уже используется. убить его, и он должен быть разрешен. fuser -k 8080/tcp

например, приведенный выше код убивает и освобождает гнездо при 8080

Ответ 3

Протестируйте его в другом порту, добавив --port NUMBER при запуске сервера.

Ответ 4

Команда fuser -k не работала для меня из-за неизвестного параметра, и я сделал это вместо этого.

Посмотрите, какой процесс использует порт через "sudo lsof -i -n -P | grep TCP". Я обратил внимание на идентификатор процесса и покинул его через Activity Monitor (на вкладке "Сеть" ).

Ответ 5

Имела ту же проблему, на самом деле пыталась запустить сервер с графическим интерфейсом. Остановил его в графическом интерфейсе, отлично работает.

Ответ 6

Ubuntu 14.04 имеет легкий сервер с именем "webfs", прослушивающий localhost: 8000. Run - sudo netstat -tupen | grep ": 8000" - в терминале для подтверждения. Если он запускает прослушивание - sudo killall -q/usr/bin/webfsd - убить его. GAE использует порты 8000 и 8080 и не запускается, если один или оба заняты. При отражении демон webfs также можно включать и выключать как услугу: sudo service webfs start/stop. Однако, поскольку оба метода требуют привилегий root, их автоматизировать непросто. Поскольку я запускаю appengine локально из командной строки, просто изменение порта администрирования от 8000 до 8001 при запуске оказалось более понятным подходом. Моя командная строка выглядит так: google_appengine/dev_appserver.py --admin_port 8001 проектов/helloworld/

Ответ 7

В прошлый раз, когда вы запустили команду движка приложения, вы закрываете ее с помощью ctrl-z вместо этого (shunt to background) вместо ctrl-c (kill). Перезагрузите терминал и в следующий раз, когда вы отключите движок приложения с помощью терминала ctrl-c, и все будет в порядке.