如何阻止导入Python标准库模块?
在我的Python脚本中,我想阻止一些标准库模块,比如 os
和 sys
,被导入。我该怎么做呢?
2 个回答
1
不要导入它们。更一般来说,不要在你的模块里执行不可信的代码。虽然eval()
看起来很炫,但它几乎肯定不是你的好朋友。
如果你真的想要在一个安全的环境中运行外部代码,可以看看Python维基上的SandboxedPython文章。在你阅读并理解了那里的所有内容之前,请不要尝试使用它。
6
如果你字面上理解这个问题,假设你只是想“把它们暂时去掉,这样它们就不会被直接导入”,而不是“让它们不能被不可信的代码加载”,那么:
import sys
sys.modules['os'] = None
sys.modules['system'] = None
当然,没有叫做 system
的模块,所以你可能是想说 sys
,如果是这样的话,那你就麻烦了。
如果你想防止不可信的代码做一些坏事,那你可以看看 http://wiki.python.org/moin/SandboxedPython,要明白你想要的东西并不是那么简单。