App Engine(灵活环境)使用deferred.defer遇模块找不到错误求助
解决Python3 App Engine灵活环境中
deferred模块找不到的问题 你遇到的问题很典型——因为你参考的教程是针对App Engine标准环境的,而Python3的灵活环境和标准环境的依赖体系完全不同,旧的google.appengine.ext模块并不会预装在灵活环境里。下面是具体的解决步骤:
1. 替换依赖包
灵活环境中需要使用新的Cloud Deferred库,而不是旧的App Engine SDK模块。在你的requirements.txt中添加以下依赖:
google-cloud-deferred google-cloud-tasks
然后执行pip install -r requirements.txt安装这些包。
2. 修改app.yaml配置
移除原来的builtins配置(灵活环境不支持这个字段),并更新deferred的handler路径:
handlers: - url: /_ah/queue/deferred script: google.cloud.deferred.deferred.application login: admin
3. 更新代码中的导入语句
把原来的导入:
from google.appengine.ext import deferred
替换为:
from google.cloud import deferred
额外注意事项
- 确保你的App Engine服务账号拥有Cloud Tasks Enqueuer和Cloud Tasks Viewer的权限(可以在Google Cloud控制台的IAM页面配置),否则任务无法正常提交。
- 如果你是从头开发异步任务,更推荐直接使用
google-cloud-tasks客户端库,这是Google现在主推的异步任务方案,功能更完整也更灵活。
内容的提问来源于stack exchange,提问作者beachCode
相关产品推荐
相关产品推荐

