【发布时间】:2016-11-17 14:32:55
【问题描述】:
我在谷歌云平台上尝试了 pysaml2 和 python-saml 库,但两者都在内部使用一些库,这些库在 C 库上使用 C 扩展或 python 包装器,这与应用引擎不兼容,因为应用引擎在其生态中阻止了 c 实现的库系统。 有人用python在appengine中实现了saml2协议吗?
pysaml2 文档表明它是一个纯 python 实现,但它也使用需要 _ctype 库的库,如 pycrytodome 或 cryptodome。
以下是错误:
File "/home/***/anaconda2/lib/python2.7/ctypes/_init_.py", line 10, in <module>
from _ctypes import Union, Structure, Array
File "/home/***/sdks/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 963, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named _ctypes
如果可能,请提出其他一些方法。
【问题讨论】:
-
一种可能性是 GAE 柔性环境,一些标准环境沙箱限制(包括“纯 python”)在 flex 环境中被解除。
-
是的,你是对的,弹性环境有帮助,但不仅是弹性环境,还需要自定义运行时环境,我们需要从 ubuntu 或任何 linux 映像而不是 python 映像准备机器并安装所有使用 apt-get 的库。
-
更新请在 dockerfile 中使用 FROM gcr.io/google_appengine/python-compat-multicore 而不是从 ubuntu 构建。
-
你应该为你自己的问题写一个答案,描述一个可行的解决方案(听起来你有一个)。
-
@DanCornilescu 是否可以在灵活环境中运行一项服务而在标准环境中运行所有其他服务?因为我必须在我的 GAE 应用程序中实现 python-saml。
标签: python-2.7 google-app-engine ctypes saml-2.0