Python2.7 Django项目部署GAE遇ImportError: No module named googleads求助
解决GAE部署后
googleads模块找不到的问题 嘿,我帮你分析下这个问题——你本地明明装了googleads模块,但部署到GAE后却报错找不到,核心原因是GAE不会自动同步你本地全局的Python依赖,得手动把依赖打包到项目里或者做正确的配置。下面是几个针对性的解决方案:
1. 把依赖打包到项目的lib目录
GAE的Python2.7环境需要依赖包放在项目目录内才能识别,你可以这么操作:
- 先在项目根目录创建一个
lib文件夹:
mkdir lib
- 把所有依赖(包括
googleads)安装到这个lib目录里:
pip install -t lib -r requirements.txt
要是还没生成requirements.txt,先在本地项目环境里跑这个命令生成:
pip freeze > requirements.txt
- 然后新建或修改项目根目录的
appengine_config.py文件,添加以下代码,告诉GAE去lib目录找依赖:
from google.appengine.ext import vendor vendor.add('lib')
2. 确认googleads版本兼容Python2.7
注意哦,很多新版本的googleads已经放弃支持Python2.7了,你得确保装的是兼容的版本。比如你可以指定一个支持Python2.7的版本安装:
pip install googleads==12.0.0 -t lib
(这个版本是经过验证支持Python2.7的,你也可以根据自己的需求调整成其他兼容版本)
3. 检查app.yaml的配置是否正确
确保你的app.yaml里指定了正确的Python运行环境,比如:
runtime: python27 api_version: 1 threadsafe: true handlers: - url: /.* script: 你的项目名.wsgi.application
记得把上面的“你的项目名”替换成你实际Django项目的WSGI入口名称。
4. 重新部署验证
完成上面的步骤后,重新部署你的项目:
gcloud app deploy
部署完成后再访问你的项目URL,应该就能解决这个ImportError的问题了。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

