我们正在编写一个 C 应用程序,它允许人们加载一个 python 模块并在其中调用一个函数。当用户请求通过用户界面操作(一次)运行该函数时,将调用该函数。Python解释器嵌入在应用程序中,以避免进程间通信的数据通信成本。
解释器中加载的模块可以由用户在外部进行修改,并且当用户请求下次运行该模块时,应用程序应该重新加载该模块。
鉴于 python 模块重新加载 API 不会重新加载依赖的子模块,我们实现这一点的唯一方法是卸载模块。为此,我们使用此处描述的RollbackImporter。
以这种方式从嵌入式 Python 解释器中卸载和重新加载模块安全吗?