ImportError: cannot import name sandbox

ImportError: cannot import name sandbox

在过去的几天里,每当我 运行 dev_appserver.py:

from google.appengine.tools.devappserver2.python import sandbox
ImportError: cannot import name sandbox

由于我主要是在设置新环境时遇到这个问题,所以我认为这一定是我在设置过程中的错误。经过过去 3 个小时的充分思考后,我认为它不能在新设置中,所以我在一个已知可以工作的环境中加载 dev_appserver.py

又一次:

from google.appengine.tools.devappserver2.python import sandbox
ImportError: cannot import name sandbox

None 我的应用程序代码已更改,因此 必须 是其他代码。

原来SDK变了

我有一个名为 appengine_config.py 的文件(专门用于开发服务器)将几个 C 模块列入白名单。

from google.appengine.tools.devappserver2.python import sandbox
sandbox._WHITE_LIST_C_MODULES += ['_ssl', '_socket']

当我禁用这些线路时,这个问题被另一个问题所取代(这是那些线路在那里缓解的原因):

File "[...]/devappserver2/python/runtime/sandbox.py", line 1091, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named _socket

注意到文件路径中的 runtime 部分了吗?显然沙盒模块的位置已经改变。所以我在导入路径中添加了.runtime

from google.appengine.tools.devappserver2.python.runtime import sandbox

然后,在重新启用这些线路后,一切又恢复正常了! ✅ 任务完成。