找不到appcfg.py命令

时间:2013-10-22 15:46:40

标签: python google-app-engine

我正在关注如何在此网站上设置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 Place

upload_data.sh的内容是:

!/ bin / sh的

appcfg.py upload_data

- 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:line 2:appcfg.py:command not found

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

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

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

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

6 个答案:

答案 0 :(得分:6)

虽然它未作为先决条件列出,但安装适用于Python的Google App Engine SDK(可从Google's App Engine SDK Download page获得)使得appcfg.py可用于命令行。

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

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

答案 1 :(得分:3)

这是一个简单的解决方法。没有必要创建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. 出现密码提示时按Enter键。享受!!!此外,您可能需要等待大约一两分钟,以确认数据是否可从数据存储区查看器获得。

答案 2 :(得分: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.

干杯

答案 3 :(得分:1)

我的Mac上也出现了此错误。默认情况下,最新版本的Google App Engine不会在appcfg.py中包含$PATH。该目录包含我{​​{1}}上的appcfg.py,您只需在$HOME/google-cloud-sdk/platform/google_appengine/中添加此目录即可。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

我知道这个问题已经过去很久了,但请注意 appcfg.py弃用

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