App Engine Python本地单元测试报错:fancy_urllib无InvalidCertificateException属性
解决App Engine Python单元测试中fancy_urllib无InvalidCertificateException属性的问题
你遇到的问题是由于使用的196.0.0-0版本google-cloud-sdk-app-engine-python中,fancy_urllib模块的结构发生了变更,导致urlfetch_stub.py找不到预期的InvalidCertificateException属性。下面是几个可行的解决方案:
方案1:更新Google Cloud SDK(推荐)
老版本SDK通常存在这类依赖兼容问题,更新到最新稳定版是最省心的解决方式:
- 打开终端运行更新命令:
gcloud components update - 更新完成后重新运行单元测试,这个属性找不到的问题通常会被自动修复。
方案2:手动修改urlfetch_stub.py的引用路径
如果暂时无法更新SDK,可以直接修改出错的模块引用:
- 找到
urlfetch_stub.py的位置,通常在你的SDK安装目录下:/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/api/urlfetch_stub.py - 打开该文件,搜索包含
fancy_urllib.InvalidCertificateException的代码行 - 将其替换为:
fancy_urllib.exceptions.InvalidCertificateException - 保存文件后重新运行测试即可。
方案3:验证PYTHONPATH配置的完整性
确保你的PYTHONPATH正确包含了App Engine SDK的核心目录,避免因路径缺失导致模块加载异常:
- 检查当前PYTHONPATH:
echo $PYTHONPATH - 确保其中包含
/usr/lib/google-cloud-sdk/platform/google_appengine,如果没有,重新设置:export PYTHONPATH="$PYTHONPATH:/usr/lib/google-cloud-sdk/platform/google_appengine"
内容的提问来源于stack exchange,提问作者oon arfiandwi
相关产品推荐
相关产品推荐

