requests套件在GAE專案開發中遇到的無法正常存取ssl套件的問題
我是用的GAE SDK版本為1.7.0,python 2.7。requests在0.13.4版的時候已支持使用在GAE上。但使用development server啟動專案進行本地端測試時,如果抓取https的資源,會發出ssl的AttributeError例外,如果利用dir將ssl列印出來,會發現只是一個空的module,development server啟動時將特定套件過濾掉了。
GAE SDK處理development server啟動時允許使用的套件的程式是在google/appengine/tools/dev_appserver_import_hook.py ,修改這個檔案如下,就可解決問題了。
GAE SDK處理development server啟動時允許使用的套件的程式是在google/appengine/tools/dev_appserver_import_hook.py ,修改這個檔案如下,就可解決問題了。
--- a/dev_appserver_import_hook.py +++ b/dev_appserver_import_hook.py @@ -35,6 +35,7 @@ import select import socket import sys import urllib +import ssl as _new_ssl try: import distutils.util @@ -1114,8 +1115,8 @@ class HardenedModulesHook(object): ], - 'ssl': [ - ], + #'ssl': [ + #], } @@ -1711,7 +1712,8 @@ class HardenedModulesHook(object): elif submodule_fullname == 'select': module.__dict__.update(self._select.__dict__) elif submodule_fullname == 'ssl': - pass + module.__dict__.update(_new_ssl.__dict__) + #pass elif self.StubModuleExists(submodule_fullname): module = self.ImportStubModule(submodule_fullname) else:patch file download
留言