App Engine;未找到处理程序引用的文件:main.py

时间:2017-09-24 21:57:05

标签: google-app-engine

首先发布堆栈溢出。请原谅我的发布错误 我花了很多时间在这上面。我从500服务器错误开始。

这个很长的说法没有找到python。我的应用程序只是JS,CSS和HTML。 (在这一点上)我已经包括了yaml,因为如果我通过我的研究有错误,我不能排除自己。

非常感谢指针。

感谢。

我的app.yaml

   application: application
    version: secureable
    runtime: python27
    api_version: 1
    threadsafe: false

    handlers:
    - url: /(.*\.(gif|png|jpg|ico|js|css))
      static_files: \1
      upload: (.*\.(gif|png|jpg|ico|js|css))

    - url: /robots.txt
      static_files: robots.txt
      upload: robots.txt 

    - url: .*
      script: main.py

    inbound_services:
    - mail

错误:

     httpRequest: {
      status: 500   

   0: {
    logMessage: "File referenced by handler not found: main.py"     
    severity: "WARNING"     
    time: "2017-09-24T21:12:30.191830Z"     
   }
  ]
  megaCycles: "2"   
  method: "GET"   
     requestId:   resource: "/index.html"   
  startTime: "2017-09-24T21:12:30.138333Z"   
  status: 500   
  traceId: "618d060203d57aea2bfddc905e350698"   
  urlMapEntry: "main.py"   
  userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0)       Gecko/20100101 Firefox/55.0"   
  versionId: "secureable"   
 }
 receiveTimestamp: "2017-09-24T21:12:30.926277443Z"  
 resource: {
  labels: {
   module_id: "default"    
   project_id: "Application"    
   version_id: "secureable"    
   zone: "us9"    
  }
   type: "gae_app"   
  }
 severity: "WARNING"  
 timestamp: "2017-09-24T21:12:30.138333Z"  
}

2 个答案:

答案 0 :(得分:2)

如果您的应用只是HTML,CSS和JS,您可以一起删除指向Python脚本的catch-all指针,而是使用app.yaml格式,如Hosting a Static Website on App Engine tutorial中所示。 :

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /
  static_files: www/index.html
  upload: www/index.html

- url: /(.*)
  static_files: www/\1
  upload: www/(.*)

稍后,如果要使用Python模块添加服务器端逻辑,则可以添加与其关联的script的处理程序。执行该步骤时,将使用[script_name].[var_pointing_to_wsgi_application_in_script]形式的导入样式指针。因此,如果您有main.py并且在其中的一个名为application的变量设置为您的WSGI应用程序,那么您将使用script: main.application

通常,WSGI应用程序是webapp2(example)或Flask(example)。

答案 1 :(得分:1)

script: main.py文件handlers部分中的app.yaml声明错误,应为script: main.app

来自Handlers element表格中的script行(遗憾的是格式不正确,包括页面来源的引用以使其可读):

  

<强>脚本

     

script:指令必须是python导入路径,例如,   package.module.app指向WSGI应用程序。最后   使用 Python模块路径的script:指令的组件是   模块中全局变量的名称:该变量必须是a   WSGI应用程序,通常按惯例称为app