【问题标题】:Google App Engine, dev_appserver.py: WindowsError: [Error 2] The system cannot find the file specifiedGoogle App Engine,dev_appserver.py:WindowsError:[错误 2] 系统找不到指定的文件
【发布时间】:2023-02-16 06:37:24
【问题描述】:

我正在尝试使用以下命令运行 Google App Engine 本地开发服务器 (dev_appserver.py):

python3 "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\dev_appserver.py" "C:\Users\myusername\Desktop\test_gae_python3\app.yaml"

但是我得到以下异常:

# INFO     2023-02-15 23:27:07,500 devappserver2.py:317] Skipping SDK update check.
# INFO     2023-02-15 23:27:07,720 <string>:384] Starting API server at: http://localhost:50618
# INFO     2023-02-15 23:27:07,747 instance_factory.py:155] Detected python version "Python 3.9.13
# " for runtime "python39" at "python3".
# Actual environment location may have moved due to redirects, links or junctions.
#   Requested location: "c:\users\myuser~1\appdata\local\temp\tmp2cocmu\Scripts\python3.exe"
#   Actual location:    "C:\Users\myusername\AppData\Local\Temp\tmp2cocmu\Scripts\python3.exe"
# INFO     2023-02-15 23:27:17,122 instance_factory.py:312] Using pip to install dependency libraries; pip stdout is redirected to c:\users\myuser~1\appdata\local\temp\tmpsvzpsq
# INFO     2023-02-15 23:27:17,154 instance_factory.py:334] Running c:\users\myuser~1\appdata\local\temp\tmp2cocmu\bin\pip install --upgrade pip
# INFO     2023-02-15 23:27:17,155 stub_util.py:360] Applying all pending transactions and saving the datastore
# INFO     2023-02-15 23:27:17,157 stub_util.py:363] Saving search indexes
# Traceback (most recent call last):
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 109, in <module>
#     _run_file(__file__, globals())
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 103, in _run_file
#     _execfile(_PATHS.script_file(script_name), globals_)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 83, in _execfile
#     execfile(fn, scope)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 645, in <module>
#     main()
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 633, in main
#     dev_server.start(options)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 401, in start
#     options.api_host, apiserver.port, wsgi_request_info_)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\dispatcher.py", line 272, in start
#     ssl_port)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\dispatcher.py", line 409, in _create_module
#     ssl_port=ssl_port)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\module.py", line 1356, in __init__
#     super(AutoScalingModule, self).__init__(**kwargs)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\module.py", line 615, in __init__
#     self._module_configuration)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\module.py", line 242, in _create_instance_factory
#     module_configuration=module_configuration)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\python\instance_factory.py", line 207, in __init__
#     self._SetupVirtualenvFromConfiguration()
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\python\instance_factory.py", line 233, in _SetupVirtualenvFromConfiguration
#     self._venv_dir, self._OrigRequirementsFile)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\python\instance_factory.py", line 359, in _SetupVirtualenv
#     self._RunPipInstall(venv_dir, requirements_file_name)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\python\instance_factory.py", line 335, in _RunPipInstall
#     pip_proc = subprocess.Popen(pip_cmd, stdout=pip_out, env=pip_env)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\bundledpython2\lib\subprocess.py", line 390, in __init__
#     errread, errwrite)
#   File "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\bundledpython2\lib\subprocess.py", line 640, in _execute_child
#     startupinfo)
# WindowsError: [Error 2] The system cannot find the file specified

C:\Users\myusername\Desktop\test_gae_python3\app.yaml:

runtime: python39
app_engine_apis: true
service: default
entrypoint: python3 -m app

C:\Users\myusername\Desktop\test_gae_python3\app.py:

print('OK')

当然,这是重现问题的最小场景,我的实际应用要复杂得多。

环境:

  • Windows 11 专业版 (22621.1265)
  • 蟒蛇 3.9.13
  • 谷歌云 SDK 418.0.0
  • app-engine-python 1.9.101
  • bq 2.0.85
  • 云数据存储模拟器 2.3.0
  • 核心 2023.02.13
  • gsutil 5.20

我的系统中没有安装其他版本的 Python。

我已尝试将 SDK 恢复为 367.0.0,但我得到了完全相同的异常。

Google Cloud SDK 366.0.0 引发了一个不同的异常,我认为它不相关,但如果有用我可以粘贴。

背景:我正在尝试将 Python 2 服务器迁移到版本 3,但我卡在了这个阶段,无法解决这个问题。

【问题讨论】:

    标签: google-app-engine google-cloud-platform google-cloud-sdk dev-appserver


    【解决方案1】:

    这不受谷歌支持。根据Google documentation

    dev_appserver 工具不支持在 Windows 上开发 Python 3 应用程序。

    我相信这是因为 gunicorn 不能在 Windows 上运行。但是如果你仍然想在 Windows 机器上为 Python 3 应用程序使用 dev_appserver.py,你可以查看我们创建的 Patch(当在你的开发机器上运行你的应用程序时,这个补丁基本上将 Gunicorn 换成了 Waitress)

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 2018-06-11
      • 2021-07-14
      • 2014-04-12
      • 2016-08-17
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多