启动Google App Engine本地服务器遇WindowsError[2]文件未找到问题
GAE Python3本地开发服务器启动失败:WindowsError[Error 2]文件找不到
执行的启动命令
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
配置文件与代码
app.yaml
runtime: python39 app_engine_apis: true service: default entrypoint: python3 -m app
app.py
print('OK')
当前环境信息
- Windows 11 Pro (22621.1265)
- Python 3.9.13
- Google Cloud SDK 418.0.0
- app-engine-python 1.9.101
- bq 2.0.85
- cloud-datastore-emulator 2.3.0
- core 2023.02.13
- gsutil 5.20
已尝试回退SDK至367.0.0,问题依旧;系统仅安装Python 3.9.13,无其他版本。
解决方法
1. 跳过依赖检查
由于测试项目没有额外依赖,直接添加--skip_requirements_check参数跳过pip安装步骤,修改启动命令为:
python3 "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\dev_appserver.py" --skip_requirements_check "C:\Users\myusername\Desktop\test_gae_python3\app.yaml"
2. 指定完整Python路径
避免python3别名在虚拟环境中找不到,改用系统Python的完整路径启动:
"C:\Python39\python.exe" "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\dev_appserver.py" "C:\Users\myusername\Desktop\test_gae_python3\app.yaml"
3. 修改app.yaml的entrypoint
虚拟环境中默认Python命令为python而非python3,调整entrypoint:
entrypoint: python -m app
4. 手动指定虚拟环境
先在项目目录手动创建虚拟环境:
python3 -m venv venv venv\Scripts\activate pip install --upgrade pip deactivate
启动时指定该虚拟环境的Python路径:
python3 "C:\Users\myusername\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\dev_appserver.py" --python "C:\Users\myusername\Desktop\test_gae_python3\venv\Scripts\python.exe" "C:\Users\myusername\Desktop\test_gae_python3\app.yaml"
内容的提问来源于stack exchange,提问作者Dario
相关产品推荐
相关产品推荐

