Google Cloud构建错误“print_env_info.py:错误:无法识别的参数”

时间:2014-04-22 16:28:31

标签: java python google-app-engine google-cloud-platform

我试图在我的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

有什么想法吗?

2 个答案:

答案 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