我试图在我的Windows(64位)计算机上启动并运行Google Cloud开发环境。
我在Windows计算机上的https://console.developers.google.com/start/appengine处遵循了Java的说明,但在第6步("创建项目和部署")我收到此错误消息:
D:\ google-app-engine \ appengine-try-java> appcfg.cmd -A midyear-tempo-554 update t arget \ appengine-try-java用法: print_env_info.py [-h] item print_env_info.py:错误:无法识别 参数:Osofsky \ AppData \ Roaming \ gcloud \ tmp-env-info-10521.txt
我能够完成所有其他步骤。唯一的异常是在第4步("在本地运行您的应用程序"),当我尝试运行install.bat时出现以下错误:
要使用Google Cloud SDK,您必须安装并启用Python 你的路径。作为替代方案,您也可以设置CLOUDSDK_PYTHON 环境变量到Python可执行文件的位置。
我通过在install.bat中添加以下行来成功解决了这个问题:
set CLOUDSDK_PYTHON=C:\Python27\python.exe
我不确定这是否会导致"print_env_info.py: error: unrecognized arguments"
,但它似乎是相关的,因为它们都与环境变量有关。所以我将CLOUDSDK_PYTHON=C:\Python27\python.exe
添加到我的用户级环境变量中。然后我启动了一个新的命令提示符,通过"set"
已注册的CLOUDSDK_PYTHON=C:\Python27\python.exe
命令确认,然后再次尝试,但我仍然遇到此错误:
D:\ google-app-engine \ appengine-try-java> appcfg.cmd -A midyear-tempo-554 update t arget \ appengine-try-java用法: print_env_info.py [-h] item print_env_info.py:错误:无法识别 参数:Osofsky \ AppData \ Roaming \ gcloud \ tmp-env-info-8445.txt
有什么想法吗?
答案 0 :(得分:0)
问题似乎是目录名称中的空间,它尝试打印临时文件。 解决为我解决这个问题的步骤:
1)创建一个新的空目录,路径中没有空格,例如D:\google-cloud-sdk\tmp
2)修改D:\google-cloud-sdk\bin\appcfg.cmd
文件,将%APPDATA%\gcloud\
替换为您的。{1}}
新创建的目录路径D:\google-cloud-sdk\tmp\
答案 1 :(得分:0)
Google Enterprise支持名为Jordan的代表向我提供了下面修订的appcfg.cmd文件。它帮助我解决了我遇到的错误。不幸的是,现在又出现了另一个问题,但我认为下面的解决方案解决了我发布的原始错误。感谢Heeryu和Tatiana提供的帮助。
@echo off
rem Copyright 2013 Google Inc. All Rights Reserved.
cmd /c "python "%~dp0bootstrapping\prerun.py" --command-name=appcfg-java --component-id=gae-java --check-credentials --check-updates"
IF %ERRORLEVEL% NEQ 0 (
EXIT /B %ERRORLEVEL%
)
SETLOCAL
set TMPFILE=%APPDATA%\gcloud\tmp-env-info-%RANDOM%.txt
cmd /c "python "%~dp0bootstrapping\print_env_info.py" gae_java_path > "%TMPFILE%"
IF %ERRORLEVEL% NEQ 0 (
EXIT /B %ERRORLEVEL%
)
set /p credential_path= < "%TMPFILE%"
del "%TMPFILE%"
cmd /c ""%~dp0..\platform/appengine-java-sdk\bin\appcfg.cmd" --oauth2 --oauth2_config_file="%credential_path%" %*"
IF %ERRORLEVEL% NEQ 0 (
EXIT /B %ERRORLEVEL%
)
ENDLOCAL