tutorial pricing prices google flexible español engine appengine app python google-app-engine ssl python-requests wechat

python - pricing - SSLError: no se puede conectar a la URL HTTPS porque el módulo SSL no está disponible en el motor de la aplicación de Google



google cloud (3)

Jan Dolejsi,

Si está utilizando los sockets de GAE, puede obtener soporte SSL sin ningún tipo de piratería simplemente cargando la biblioteca SSL.

Simplemente agregue esto a su archivo app.yaml:

bibliotecas: - nombre: ssl
- versión: última

Si está experimentando el error RAND_egd, simplemente cambie "-version: latest" en su app.yaml, a "-version: 2.7"!

¿Quieres usar wechat sdk para crear menú

WeChat.create_menu({ "button":[ { "type":"click", "name":"Daily Song", "key":"V1001_TODAY_MUSIC" }, { "type":"click", "name":" Artist Profile", "key":"V1001_TODAY_SINGER" }, { "name":"Menu", "sub_button":[ { "type":"view", "name":"Search", "url":"http://www.soso.com/" }, { "type":"view", "name":"Video", "url":"http://v.qq.com/" }, { "type":"click", "name":"Like us", "key":"V1001_GOOD" }] }] })

Actualmente no funciona debido a este error:

Traceback (most recent call last): File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 267, in Handle result = handler(dict(self._environ), self._StartResponse) File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1519, in __call__ response = self._internal_error(e) File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511, in __call__ rv = self.handle_exception(request, response, e) File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1505, in __call__ rv = self.router.dispatch(request, response) File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher return route.handler_adapter(request, response) File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1077, in __call__ return handler.dispatch() File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch return self.handle_exception(e, self.app.debug) File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch return method(*args, **kwargs) File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechatAPIHandler.py", line 72, in post "key":"V1001_GOOD" File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechat_sdk/basic.py", line 355, in create_menu data=menu_data File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechat_sdk/basic.py", line 949, in _post **kwargs File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechat_sdk/basic.py", line 907, in _request "access_token": self.access_token, File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechat_sdk/basic.py", line 849, in access_token self.grant_token() File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechat_sdk/basic.py", line 273, in grant_token "secret": self.__appsecret, File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechat_sdk/basic.py", line 935, in _get **kwargs File "/base/data/home/apps/s~project-boom/1.384461758981660124/wechat_sdk/basic.py", line 917, in _request **kwargs File "/base/data/home/apps/s~project-boom/1.384461758981660124/requests/api.py", line 50, in request response = session.request(method=method, url=url, **kwargs) File "/base/data/home/apps/s~project-boom/1.384461758981660124/requests/sessions.py", line 465, in request resp = self.send(prep, **send_kwargs) File "/base/data/home/apps/s~project-boom/1.384461758981660124/requests/sessions.py", line 573, in send r = adapter.send(request, **kwargs) File "/base/data/home/apps/s~project-boom/1.384461758981660124/requests/adapters.py", line 431, in send raise SSLError(e, request=request) SSLError: Can''t connect to HTTPS URL because the SSL module is not available.

El módulo de solicitud de Python se incluye en el proyecto del motor de aplicaciones. Utilizando python 2.7. Buscar formas de resolver este problema pero aún no he encontrado una manera clara de resolver el problema


Si está utilizando los sockets de GAE, puede obtener soporte SSL sin ningún tipo de piratería simplemente cargando la biblioteca SSL.

Simplemente agregue esto a su archivo app.yaml:

libraries: - name: ssl version: latest

Esto está documentado en la documentación de soporte de OpenSSL de Google Cloud.


Esta entrada de blog detalla una solución . De la entrada del blog:

El problema es que GAE tiene una "lista blanca" de bibliotecas estándar seleccionadas. SSL (_ssl, _socket) no es uno de ellos. Por lo tanto, tenemos que ajustar el entorno de la caja de arena (peligroso) con cuidado. El código siguiente utiliza la biblioteca de socket estándar de Python en lugar del GAE proporcionado en el entorno de desarrollo. Modificar [o crear] appengine_config.py:

import os # Workaround the dev-environment SSL # http://.com/q/16192916/893652 if os.environ.get(''SERVER_SOFTWARE'', '''').startswith(''Development''): import imp import os.path from google.appengine.tools.devappserver2.python import sandbox sandbox._WHITE_LIST_C_MODULES += [''_ssl'', ''_socket''] # Use the system socket. psocket = os.path.join(os.path.dirname(os.__file__), ''socket.py'') imp.load_source(''socket'', psocket)