【问题标题】:app.yaml / project file structure works on app engine localhost debugger but not on google app engine serverapp.yaml / 项目文件结构适用于应用引擎本地主机调试器,但不适用于谷歌应用引擎服务器
【发布时间】:2012-06-01 08:29:12
【问题描述】:

这个问题可能是我对 Python 和应用引擎中的项目结构理解有限以及对 app.yaml 文件理解有限的结果。

我有一个 python 2.7 项目,其文件结构如下所示:

项目名 > 源 应用程序.yaml > 蟒蛇 __init__.py > package_folder1 __init__.py package1_file.py > package_folder2 __init__.py

我的 app.yaml 文件中有这个:

- 网址:/package1/resource1 脚本:package_folder1.package1_file1.py 安全:总是

这在使用应用程序引擎的模拟器在本地主机上调试时工作正常,但在服务器上,当我尝试访问资源 @987654321 时,我收到此警告(在这种情况下是一个错误,因为没有提供脚本) @:

File referenced by handler not found: python.package_folder1.package1_file1.py

我还尝试将 app.yaml 文件中的行更改为 script: package_folder1.package1_file1.py,但仍然出现相同的错误。

有什么想法吗?谢谢!

【问题讨论】:

  • 你的 yaml 文件存储在哪里?包路径是相对于它的。
  • @sizzzzlerz - 我在上面添加了位置。它在“src”文件夹中。

标签: python google-app-engine yaml


【解决方案1】:

您使用 python 2.5 或 python 2.7 的运行时是什么?使用其中一种时存在一些差异。另外,您将 app.yaml 文件存储在项目结构的哪个位置?

对于 python 2.5,您指定实际的 python 脚本,但对于 python 2.7,您指定 WSGI 应用程序。详情请见https://developers.google.com/appengine/docs/python/config/appconfig#Script_Handlers

运行时是在 app.yaml 文件中定义的,其中包含关键运行时。

runtime: python   #python 2.5
runtime: python27 #python 2.7

【讨论】:

  • 我在上面的问题中添加了 python 运行时和 app.yaml 位置。 python运行时为2.7,app.yaml位于“src”文件夹中。
【解决方案2】:

python 文件夹是整个 python 运行时吗?如果是这样,你不应该包括那个。

Project_name
> src
  app.yaml
  > package_folder1
    __init__.py
    package1_file.py
  > package_folder2
    __init__.py

在 app.yaml 文件中使用斜杠而不是句点来指定脚本:

script: package_folder1/package1_file1.py

【讨论】:

  • 不,我试图做的是将项目的所有python代码放在​​“python”文件夹中。
  • 啊。我认为问题在于您需要使用斜杠而不是句点来指定脚本。脚本:package_folder1/package1_file1.py 不知道为什么它碰巧在本地工作。
  • 是的,这就是问题所在!我认为我建立的项目结构与“python”文件夹和所有内容还有很多不足之处。
  • 您可以随意命名。我只是很容易混淆。
猜你喜欢
  • 2021-02-02
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 2014-08-02
  • 2014-08-11
  • 1970-01-01
相关资源
最近更新 更多