可能是因为我对Python和应用程序引擎中的项目结构了解有限,以及对app.yaml文件的理解有限。
我有一个python 2.7项目,其文件结构如下所示:
Project_name> app.yaml >蟒蛇 __init__.py > package_folder1 __init__.py package1_file.py > package_folder2 __init__.py
我的app.yaml文件中有这个:
- 网址:/包1/资源1 脚本:package_folder1.package1_file1.py 安全:始终
使用应用程序引擎的模拟器在本地主机上调试时,这工作正常,但在服务器上,当我尝试访问资源/package1/resource1
时,我收到此警告(在这种情况下是一个错误,因为脚本未提供):
File referenced by handler not found: python.package_folder1.package1_file1.py
我还尝试将 app.yaml 文件中的行更改为此script: package_folder1.package1_file1.py
,但仍然收到相同的错误。
有什么想法吗?谢谢!
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 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