如何更改 __builtins__ 模块变量?

How to change __builtins__ module variable?

如果您 运行 此代码:

src = "import os"
d = dict(__builtins__={})
exec src in d

Python 说:

ImportError: __import__ not found

这就是我喜欢做的,但是在创建(或加载)新模块时:

import imp
mod = imp.new_module("foo")
src = "import os"
exec src in mod.__dict__

如您所见运行s,但我不喜欢上面的程序。我喜欢禁用所有内置变量和函数。有什么办法吗?

如果你打印 mod.__dict__,你可以看到它有 __builtins__ 变量,例如任何 Python 模块。我想我必须将其值更改为 {},但我不知道如何更改。

我想我必须将其值更改为 {},但我不知道如何。

mod.__dict__["__builtins__"] = {}