我想 exec() 一个带有自定义脚本的sys.path
脚本,并让它导入模块而不将这些模块缓存到 builtinsys.modules
中。
我不想污染当前的解释器sys.path
,sys.modules
因为不同的脚本将在多线程环境中同时执行。
所以不同的脚本会同时运行,每个都有不同的路径,导入不同的模块,但可能有冲突的名称(这就是为什么它们需要从不同的路径运行)。
我认为给每个 exec() 一个不同的全局字典就足够了,但是内置的 sys 模块实例实际上是在那时共享的。
关于如何实现这一目标的任何想法?
注意:我不需要完整的沙盒解决方案 - 我的脚本来自受信任的来源,我只想同时运行它们。