java - Google App Engine appcfg.py 引发值错误

标签 java android google-app-engine

我正在关注以下网站上的应用引擎移动后端教程: https://cloud.google.com/resources/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial

我正在 Windows 8 机器上开发并使用 Java 7 64 位

我已经安装了 app-engine-sdk-1.8.6 作为 eclipse 插件并将 GAE_SDK_ROOT 环境变量设置为: E:\android-sdk\adt-bundle-windows-x86_64-20130917\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.8.6\appengine-java-sdk-1.8.6

令我惊讶的是,上面的安装目录中没有python文件,我不得不手动下载appcfg.py。

本教程使用 upload_data.sh 文件将数据上传到数据存储区。因为我在 Windows 上进行开发,所以我使用等效的批处理文件 upload_data.bat,其内容如下:

python appcfg.py upload_data --config_file bulkloader.yaml --url="http://localhost:8888/remote_api"--filename $1 --kind=$2 -e nobody@nowhere.com

当我运行批处理文件时,出现以下错误:

E:\AppEngineExample\UploadScript>upload_data.bat places.csv 地点

E:\AppEngineExample\UploadScript>python appcfg.py upload_data --config_file bulkloader.yaml
 --url="http://localhost:8888/remote_api" --filename $1 --kind=$2 -e nobody@nowhere.com
Traceback (most recent call last):
  File "appcfg.py", line 90, in <module>
    DIR_PATH = get_dir_path(os.path.join('lib', 'ipaddr'))
  File "appcfg.py", line 70, in get_dir_path
    'directory' % gae_sdk_root)
ValueError: GAE_SDK_ROOT 'E:\\android-sdk\\adt-bundle-windows-x86_64-20130917\\eclipse\\plugins\\com.google.appengine.eclipse.sdkbundle_1.8.6\\appengine-java-sdk-1.8.6' does not refer to a valid SDK directory

请帮忙!!

最佳答案

我在类似的环境(Windows 8.1、Java 7 64 位)中学习相同的教程。

在完全相同的问题上经过大量努力*在 bundle 的应用引擎 SDK 中的 appcfg.cmd 脚本中没有可用的 upload_data 参数*,我决定安装 Python 2.7 和独立的应用引擎 SDK(在此处下载) : https://developers.google.com/appengine/downloads ).

在此独立安装中有 appcfg.py 文件(位于安装文件夹的根目录中,我已将其添加到路径中)。在此之后,我创建了以下 Windows bat 文件以成功运行上传:

@echo off
appcfg.py upload_data --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename=%1 --kind=%2 --email=nobody@nowhere.com

使用以下命令在 MobileAssistant-Data 目录中运行此脚本:

upload_data.bat places.csv Place

我现在继续教程,让我们看看前面还有什么障碍;)

关于java - Google App Engine appcfg.py 引发值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711411/

相关文章:

Android ProgressDialog 进度条按正确的顺序做事

python - 以编程方式防止分配的 Google App Engine 配额用尽

google-app-engine - GAE托管的VM-如果您的项目名称太长,则无法部署

java - 如何使用 Java 在 OS X 上的扩展文件属性中存储散列?

java - 多个组件部署到同一个应用服务器

android - shell/批处理脚本将命令定向到 adb shell

android - Robolectric 由于调用存储而从 NullPointerException 失败

python - 未安装requirement.txt中的依赖项

java - 如何从项目本身开始启动 Maven 模块中的主类?

java - 如何导出ORACLE XE 数据库以支持JAVA?