9

我正在关注本网站上的如何设置 AppEngineBackend 教程https://cloud.google.com/resources/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial

我现在的环境是:

1.Windows 8(64位)。

2.Java 7

3.Eclipse 4.2 with ADT(从Android网站下载的预配置ADT的eclipse)

自从开始本教程以来,我遇到了许多与 Java、无效 AppEngine SDK 等相关的问题。我解决了其中的许多问题,并且已经到了需要使用 upload_data.sh 文件中的脚本使用以下命令将数据从 .csv 文件上传到 AppEngine 数据存储区的地步:

./upload_data.sh places.csv 地点

upload_data.sh 的内容是:

!/bin/sh

appcfg.py 上传数据

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

现在的问题是 Windows 不支持 .sh 文件。该文件还包含 appcfg.py、--config_file 等命令。为了运行 .sh 文件,我下载了 Cygwin。然后我安装了 Python33 并将 PythonPath 环境变量设置为 c:\python33。当我从 Cygwin 终端运行上述命令时,我得到以下信息:

./upload_data.sh:第 2 行:appcfg.py:找不到命令

./upload_data.sh:第 3 行:--config_file:找不到命令

./upload_data.sh:第 4 行:nobody@nowhere.com:找不到命令

我需要告诉 Cygwin 我的 python 位置吗?如果是,那么该怎么做?

另外,我在安装 Google AppEngine SDK 之后很晚才安装 Python 和 Cygwin。这会导致问题吗?是否应该在 AppEngine SDK 之前安装 Cygwin 和 Python?安装 AppEngine SDK 是否会自动通知 Cygwin appcfg.py 等?

4

6 回答 6

6

尽管未将其列为先决条件,但安装适用于 Python 的 Google App Engine SDK(可在Google 的 App Engine SDK 下载页面获得)使 appcfg.py 可用于命令行。

在 Mac 上安装此 SDK 期间,安装会将 appcfg.py 放在 PATH 上,从而解决“appcfg.py: command not found”错误消息。这可能与 Windows 类似。

此外,删除出现在 --config_file 和 nobody@nowhere.com 单词之前的换行符(即“下一行”空格) - 脚本只需要是一个没有任何换行符的连续行(该行应该只由于到达编辑器的边缘而溢出到下一行)。

于 2014-01-05T22:48:30.007 回答
4

这是一个简单的解决方法。无需创建 shell 或 .bat 文件。这应该适用于任何人以及使用终端或命令提示符的任何操作系统。您的本地服务器应该在调试模式下运行,或者换句话说,您可以成功导航到http://localhost:8888/_ah/admin

  1. 确保您已将Google App Engine SDK for Python下载并解压缩到计算机上的任何位置,因为 appcfg.py 文件位于解压缩的父目录中。

  2. 将以下文件“bulkloader.yaml 和places.csv”放在步骤1 中提取的父文件夹中,即appcfg.py 文件所在的同一目录中。

  3. 直接在终端或命令提示符下运行以下命令:

    python appcfg.py upload_data --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename places.csv --kind=Place -e nobody@nowhere.com

  4. 出现密码提示时按回车键.. 享受!!!。此外,有时您可能需要等待大约一两分钟,以确认数据是否可从数据存储查看器中获得。

于 2014-08-15T19:26:02.120 回答
1

对您的问题最简单的解决方案(在我看来)是创建一个包含以下内容的 .bat 文件:

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

我没有测试它,所以它可能不起作用。现在没有windows机器。您需要将 python.exe 的文件夹放在 PATH 环境变量中。

请使用 python 2.7 而不是 python 3.3。我很确定 Google App Engine 还不支持任何 Python 3.x。

干杯

于 2013-10-23T20:50:09.793 回答
1

我的 Mac 上也出现了这个错误。似乎默认情况下appcfg.py不包含最新版本的 Google App Engine。我的 mac 上$PATH包含的目录是,你可以在你的目录中添加这个目录,它应该可以工作。appcfg.py$HOME/google-cloud-sdk/platform/google_appengine/$PATH

于 2017-06-01T01:58:15.987 回答
0

我知道这个问题远非过去,但请注意appcfg.py弃用

现在您应该使用gcloud命令 - https://cloud.google.com/appengine/docs/standard/java/tools/migrating-from-appcfg-to-gcloud

于 2021-03-21T15:46:48.713 回答
0

如果您搜索此修复程序的原因是 appengine 部署出错,因为它指出另一个部署正在进行中并且您的应用程序是使用 maven 构建的,那么更简单的回滚方法是将终端指向您运行的目录appengine 部署,然后键入$appengine:rollback.

于 2015-12-08T19:13:24.353 回答