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
留言