Работает локально с GAE Python второго поколения - PullRequest
0 голосов
/ 12 февраля 2019

Я уже много лет использую GAE / P 1st gen и перехожу к своему первому проекту GAE / P 2nd gen.

Я пытаюсь запустить его локально, как и с dev_appserver.py для приложений 1-го поколения, но документы очень запутаны в этом отношении.

Я могу запустить Flask самостоятельно (python main.py), но статические файлы не работают (так какFlask ничего не знает о app.yaml), и хранилище данных тоже не будет работать.

Документы GAE говорят, что dev_appserver.py должно работать для второго поколения (кроме Windows, но я на Mac), но когда язапустите его, я получаю сообщение об ошибке ниже.

Это происходит, когда я запускаю dev_appserver.py с Python 2 или 3. Я также установил CLOUDSDK_PYTHON для моего двоичного файла Python 2, как указано в инструкции.

Как, черт возьми, я могу запустить свой проект GAE / P 2-го поколения локально, чтобы статические файлы и хранилище данных работали?!?


$ python ~/google-cloud-sdk/bin/dev_appserver.py --application=myapp --support_datastore_emulator=False ./app.yaml 
INFO     2019-02-12 00:39:21,885 devappserver2.py:278] Skipping SDK update check.
INFO     2019-02-12 00:39:23,128 api_server.py:275] Starting API server at: http://localhost:51187
INFO     2019-02-12 00:39:23,139 instance_factory.py:71] Detected Python 3.6.5

INFO     2019-02-12 00:39:24,459 instance_factory.py:205] Using pip to install dependency libraries; pip stdout is redirected to /var/folders/yd/xr84fg0946l72fp_cc6j9l540000gr/T/tmpj3SEUZ
INFO     2019-02-12 00:39:24,459 instance_factory.py:211] Running /var/folders/yd/xr84fg0946l72fp_cc6j9l540000gr/T/tmpLtysT3/bin/pip install --upgrade pip
INFO     2019-02-12 00:39:24,469 stub_util.py:357] Applying all pending transactions and saving the datastore
INFO     2019-02-12 00:39:24,469 stub_util.py:360] Saving search indexes
Traceback (most recent call last):
  File "/.../google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 96, in <module>
    _run_file(__file__, globals())
  File "/.../google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 90, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 600, in <module>
    main()
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 588, in main
    dev_server.start(options)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 360, in start
    options.api_host, apiserver.port, wsgi_request_info_)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 248, in start
    ssl_port)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 384, in _create_module
    ssl_port=ssl_port)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 1309, in __init__
    super(AutoScalingModule, self).__init__(**kwargs)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 598, in __init__
    self._module_configuration)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 231, in _create_instance_factory
    module_configuration=module_configuration)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/instance_factory.py", line 98, in __init__
    self._SetupVirtualenvFromConfiguration()
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/instance_factory.py", line 143, in _SetupVirtualenvFromConfiguration
    self._venv_dir, requirements_file.name)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/instance_factory.py", line 228, in _SetupVirtualenv
    cls._RunPipInstall(venv_dir, requirements_file_name)
  File "/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/instance_factory.py", line 212, in _RunPipInstall
    pip_proc = subprocess.Popen(pip_cmd, stdout=pip_out)
  File "/usr/local/Cellar/python@2/2.7.15/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/usr/local/Cellar/python@2/2.7.15/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

1 Ответ

0 голосов
/ 12 февраля 2019

После хорошего ночного сна я смог выяснить проблему ...

Я запускал dev_appserver.py из своей виртуальной среды.По какой-то причине это не позволило dev_appserver.py найти pip (необходимо установить пакеты в моем requirements.txt).

Выход из виртуальной среды перед запуском dev_appserver.py устранил проблему.

...