【问题标题】:appcfg.py command not found找不到 appcfg.py 命令
【发布时间】:2013-10-31 14:21:30
【问题描述】:

我正在关注本网站上的如何设置 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 没有人@nowhere.com

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

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

./upload_data.sh: line 3: --config_file: command not found

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

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

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

【问题讨论】:

  • 您在这个问题上需要更多帮助吗?

标签: python google-app-engine


【解决方案1】:

虽然它没有被列为先决条件,但安装适用于 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 单词之前的换行符(即“下一行”空格) - 脚本只需要是一个没有任何换行符的连续行(由于到达编辑器的边缘,该行应该只溢出到下一行)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      对您的问题最简单的解决方案(在我看来)是创建一个包含以下内容的 .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。

      干杯

      【讨论】:

      • 现在是否出现以下错误: Traceback(最近一次调用最后一次):文件“appcfg.py”,第 179 行,在 DIR_PATH = get_dir_path(os.path.join('lib ', 'ipaddr')) 文件“appcfg.py”,第 139 行,在 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' 没有引用有效的 SDK 目录
      • 我已将 SDK 作为插件安装到 eclipse
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            猜你喜欢
            • 2011-07-08
            • 1970-01-01
            • 2016-01-12
            • 2021-02-10
            • 1970-01-01
            相关资源
            最近更新 更多