我正在开发一个用Python(标准环境)编写的Google App Engine应用程序,我需要在开发服务器环境中将一些其他模块列入白名单.
我一直在appengine_config文件中使用这段代码做了很长时间,并且效果非常好:
from google.appengine.tools.devappserver2.python import sandbox
sandbox._WHITE_LIST_C_MODULES += ['_ssl', '_socket']
Run Code Online (Sandbox Code Playgroud)
正如在这个问题中所回答的,前一段时间Google Cloud SDK已更新,之前的导入导致了ImportError.导入只需要更改为:
from google.appengine.tools.devappserver2.python.runtime import sandbox
Run Code Online (Sandbox Code Playgroud)
通过此更改,一切都运行良好,直到我将Cloud SDK更新为版本:186.0.0.
现在看来沙盒模块中添加了"SandboxAccessPreventionImportHook"类,因此无法从App Engine应用程序导入.这是应用程序引发的错误:
ImportError: Importing the devappserver sandbox module (google.appengine.tools.devappserver2.python.runtime.sandbox) from user application code is not permitted.
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何绕过这个?或者是否有另一种方法将开发服务器环境中的模块列入白名单?
谢谢!!!