如何阻止导入Python标准库模块?

2 投票
2 回答
1657 浏览
提问于 2025-04-17 04:43

在我的Python脚本中,我想阻止一些标准库模块,比如 ossys,被导入。我该怎么做呢?

2 个回答

1

不要导入它们。更一般来说,不要在你的模块里执行不可信的代码。虽然eval()看起来很炫,但它几乎肯定不是你的好朋友。

如果你真的想要在一个安全的环境中运行外部代码,可以看看Python维基上的SandboxedPython文章。在你阅读并理解了那里的所有内容之前,请不要尝试使用它。

6

如果你字面上理解这个问题,假设你只是想“把它们暂时去掉,这样它们就不会被直接导入”,而不是“让它们不能被不可信的代码加载”,那么:

import sys
sys.modules['os'] = None
sys.modules['system'] = None

当然,没有叫做 system 的模块,所以你可能是想说 sys,如果是这样的话,那你就麻烦了。

如果你想防止不可信的代码做一些坏事,那你可以看看 http://wiki.python.org/moin/SandboxedPython,要明白你想要的东西并不是那么简单。

撰写回答