Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何阻止导入Python stdlib模块?_Python_Import_Std_Sandbox - Fatal编程技术网

如何阻止导入Python stdlib模块?

如何阻止导入Python stdlib模块?,python,import,std,sandbox,Python,Import,Std,Sandbox,在我的Python脚本中,我希望防止导入某些stdlib模块,例如os和sys。我将如何实现这一点?从字面上理解,如果您的意思是“删除它们,以便它们不会通过直接导入加载”,而不是“通过不受信任的代码使它们不可加载”,那么: 当然,没有模块系统,因此您可能指的是系统,在这种情况下,您会遇到麻烦 如果您试图阻止不受信任的代码做坏事,那么请查看并意识到您所追求的是一些不立即可行的东西。不要导入它们。一般来说,不要在模块内执行不受信任的代码eval()看起来很时髦,但几乎肯定不是你的朋友 如果您打算对外

在我的Python脚本中,我希望防止导入某些stdlib模块,例如
os
sys
。我将如何实现这一点?

从字面上理解,如果您的意思是“删除它们,以便它们不会通过直接导入加载”,而不是“通过不受信任的代码使它们不可加载”,那么:

当然,没有模块
系统
,因此您可能指的是
系统
,在这种情况下,您会遇到麻烦


如果您试图阻止不受信任的代码做坏事,那么请查看并意识到您所追求的是一些不立即可行的东西。

不要导入它们。一般来说,不要在模块内执行不受信任的代码
eval()
看起来很时髦,但几乎肯定不是你的朋友


如果您打算对外部代码进行沙箱处理,请参阅PythonWiki上的文章。在您阅读(并理解)所有内容之前,请不要尝试。

好的,您不能。另外,尽管不在名称空间中,但这些模块都已经加载(假设您指的是
sys
),因为Python在内部使用它们@我相信JBernardo会破坏Python。我真的希望你不是在试图创建一个“安全的”Python沙盒或其他东西…@agf我知道。这看起来很奇怪。。。为什么会有人想要阻止这些模块?@JBernardo我想retracile的想法是正确的。重复问题:就沙盒而言:虚拟机和基于文件的磁盘映像是很棒的东西;-)PyPy实现还有一个沙盒构建选项。谢谢,这很有帮助……使我免于探索我的好奇心。@GooseBumper我不想让你不去探索你的好奇心,如果你想查看它,那么该页面应该将你推向正确的方向。但我不想看到你低估问题的难度,在公共系统上推出一个不起作用的解决方案,在一篇关于身份盗窃的新闻文章中看到你公司的名字。一定要探索!但要小心,因为这很难做到正确。足够公平:)这不会投入生产,尽管我看到有人认为这可能是个好主意:P
import sys
sys.modules['os'] = None
sys.modules['system'] = None