Запрос «ImportError: Нет модуля с именем py27_urlquote» при запуске dev_appserver.py в Google Cloud SDK

# #python #macos #google-app-engine #google-cloud-sdk

Вопрос:

Когда я бегу dev_appserver.py в google-cloud-sdk я получаю ImportError: Нет модуля с именем py27_urlquote.

 Traceback (most recent call last):
  File "/Users/user/Downloads/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 109, in <module>
    _run_file(__file__, globals())
  File "/Users/user/Downloads/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 103, in _run_file
    _execfile(_PATHS.script_file(script_name), globals_)
  File "/Users/user/Downloads/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 83, in _execfile
    execfile(fn, scope)
  File "/Users/user/Downloads/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 44, in <module>
    from google.appengine.tools.devappserver2 import dispatcher
  File "/Users/user/Downloads/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 43, in <module>
    from google.appengine.tools.devappserver2 import module
  File "/Users/user/Downloads/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 39, in <module>
    import py27_urlquote
ImportError: No module named py27_urlquote
 

Я попробовал следующее:

  1. Переустановите облачный SDK
  2. Узнайте о модуле py27_urlquote (я не смог найти никакой такой информации …)
  3. Измените версию CLOUDSDK_PYTHON на 2.7 или 3.8 и выполните

Ответ №1:

Прямо сейчас это публичная проблема, и в настоящее время она решается нашей командой инженеров Google. Для запуска локального сервера разработки был предусмотрен обходной путь:

  1. Установка pip для Python 2
 sudo apt update
sudo apt install python-pip
 
  1. Установите urlquote вместо py27_urlquote
 pip install urlquote
 
  1. Изменение module.py , расположенное в вашем локальном каталоге, из сообщения об ошибке
 /Users/user/Downloads/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py
 
  1. Заменить py27_urlquote на urlquote . Есть 3 строки кода, который использует py27_urlquote . В частности, строки 39, 833 и 836.

Вы можете проверить этот общедоступный трекер, аналогичный вашей проблеме, для получения дополнительной информации и обновлений.

Комментарии:

1. Похоже, что эквивалентный вызов в urlquote не urlquote является, но quote : pypi.org/project/urlquote . Чтобы это сработало, я заменил импорт на from urlquote import quote и две другие строки от py27_urlquote.urlquote(... до quote(...

2. Шаг 2 может потребоваться pip2 install urlquote

Ответ №2:

Я только что тоже столкнулся с этой проблемой в SDK версии 359.0.0

Вместо того, чтобы обновлять файлы SDK вручную, я решил перейти на предыдущую версию.

Я обнаружил, что версия 357.0.0 работает нормально.

Чтобы понизить рейтинг, выполните следующую команду:

 gcloud components update --version 357.0.0