Python2.7版App Engine Standard集成Cloud Storage遇导入错误求助
解决App Engine Standard Python 2.7中Google Cloud Storage的导入错误
一、修复ImportError: No module named pkg_resources
- 问题本质:
appengine_config.py里的import pkg_resources放在了vendor.add('lib')之前,这时候lib目录的依赖还没被加载,自然找不到pkg_resources。 - 解决方法:
- 先确认
pkg_resources已安装到lib目录——它是setuptools的一部分,没装的话执行:pip install -t lib setuptools - 调整代码顺序,先加载lib依赖再导入pkg_resources:
from google.appengine.ext import vendor # 优先加载lib目录下的所有依赖 vendor.add('lib') # 现在再导入pkg_resources import pkg_resources
- 先确认
二、修复ImportError: No module named moves
- 问题原因:你lib目录里只有单个
six.py文件,但six.moves需要完整的包结构(包含moves子模块的six文件夹)。 - 解决步骤:
- 删除lib目录下的
six.py和six.pyc(如果存在)。 - 重新安装完整的six包到lib目录(Python2.7兼容的最高版本是1.16.0):
pip install -t lib six==1.16.0 - 安装完成后,lib目录会出现
six文件夹,里面包含moves子模块,此时from six.moves import http_client就能正常执行。
- 删除lib目录下的
额外提示
- 不用照搬官方指南安装所有依赖,只装实际需要的包即可,比如直接执行
pip install -t lib google-cloud-storage,会自动拉取必要的依赖,减少冗余。 - 检查lib目录的包结构,确保依赖都是完整的包形式,而非单个py文件(除非库本身就是单文件结构)。
内容的提问来源于stack exchange,提问作者Dev93
相关产品推荐
相关产品推荐

