Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';Google应用程序引擎找不到我的模块(Python 3)?_Python_Google App Engine - Fatal编程技术网

为什么赢了';Google应用程序引擎找不到我的模块(Python 3)?

为什么赢了';Google应用程序引擎找不到我的模块(Python 3)?,python,google-app-engine,Python,Google App Engine,我是谷歌应用程序引擎的新手,遇到了应用程序找不到我的模块的问题。我在import foo as bar ModuleNotFoundError:没有名为“foo”的模块中得到错误第5行。我有如下所示的当前文件结构(遵循一个很好的示例) 问题是routes.py无法导入foo.py 应用程序引擎:/ 应用程序 静态/css 模板 __初始值 foo.py routes.py app.yaml config.py main.py requirements.txt source-context

我是谷歌应用程序引擎的新手,遇到了应用程序找不到我的模块的问题。我在import foo as bar ModuleNotFoundError:没有名为“foo”的模块中得到错误
第5行。我有如下所示的当前文件结构(遵循一个很好的示例)

问题是
routes.py
无法导入
foo.py

  • 应用程序引擎:/
    • 应用程序
      • 静态/css
      • 模板
      • __初始值
      • foo.py
      • routes.py
    • app.yaml
    • config.py
    • main.py
    • requirements.txt
    • source-context.json
为什么会这样?当应用程序引擎在本地运行时,对于文件在应用程序引擎上的结构是否有特殊要求

另外,为了让事情顺利进行,我尝试将模块foo中的代码改为routes中的代码,代码可以正常工作。但是代码不属于那里,我想把它组织得更好,但是应用程序在分离时会崩溃。最后,我想添加目录“app engine”:/app/libs(或者在建议中添加),在这里我存储我的自定义内容

编辑(从routes.py添加代码示例)


我能够重现您正在经历的错误。以下是我的观察结果:

  • 您正在将foo模块存储在名为“app”的本地文件夹中(您的main.py文件所在的子目录)
  • 为了在这种情况下引用模块,您需要在导入时包含子目录的名称

更改routes.py文件中的以下行:

import foo as bar
致:


我已经测试过这个解决方案,它对我有效。如果有帮助,请告诉我。

我能够重现您遇到的错误。以下是我的观察结果:

  • 您正在将foo模块存储在名为“app”的本地文件夹中(您的main.py文件所在的子目录)
  • 为了在这种情况下引用模块,您需要在导入时包含子目录的名称

更改routes.py文件中的以下行:

import foo as bar
致:


我已经测试过这个解决方案,它对我有效。如果有帮助,请告诉我。

能否添加一个显示您如何执行导入的最小代码示例?@DenisT。添加了routes.py中的顶层代码。@Nelumbo我建议您遵循应用程序项目的GCP结构:@Nelumbo还可以参考如何构造web服务文件:是否可以添加显示您如何执行导入的最小代码示例?@DenisT。添加了routes.py的顶层代码。@Nelumbo我建议您遵循应用程序项目的GCP结构:@Nelumbo您还可以参考如何构造web服务文件:这很有效,谢谢!因此,模块的引用需要来自main.py,而不是来自使用模块的实际脚本/模块?是的,使用绝对导入(考虑到“app engine/”目录是应用程序的根目录)来引用本地依赖项-。您还将看到,从第3章开始,在您链接的页面中使用了绝对导入(例如,
从app.import…
)!因此,模块的引用需要来自main.py,而不是来自使用模块的实际脚本/模块?是的,使用绝对导入(考虑到“app engine/”目录是应用程序的根目录)来引用本地依赖项-。您还将看到,从第3章开始,在您链接的中使用了绝对导入(例如从app.import…
)。
import app.foo as bar