app.yaml /项目文件结构适用于app引擎localhost调试器,但不适用于谷歌应用引擎服务器

时间:2012-05-25 18:42:33

标签: python google-app-engine yaml

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

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

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

我的app.yaml文件中包含此内容:

- url: /package1/resource1
  script: package_folder1.package1_file1.py
  secure: always

使用app引擎的模拟器在localhost上调试时这很好用,但在服务器上,当我尝试访问资源{{}时,我收到此警告(在这种情况下是一个错误,因为脚本没有被提供) 1}}:

/package1/resource1

我也尝试将app.yaml文件中的行更改为此File referenced by handler not found: python.package_folder1.package1_file1.py ,但仍然遇到同样的错误。

有什么想法吗?谢谢!

2 个答案:

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

答案 1 :(得分:1)

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