Python 如何将变量插入动态加载的模块';名称空间?

Python 如何将变量插入动态加载的模块';名称空间?,python,python-3.x,python-importlib,Python,Python 3.x,Python Importlib,我试图在运行时动态导入Python模块,但我希望导入代码向正在导入的模块提供缺少的变量 Python3builtins模块可以实现我想要的行为,但我不知道这是最佳实践还是最好的方法 其次,我希望导入该文件,以告诉导入代码需要提供哪些变量。我有两种可能的解决方案: 我可以运行exec\u模块,捕捉名称错误,解析掉缺少的变量,将其添加到内置模块中,然后重新运行exec\u模块,直到成功 否则,我会考虑在文件中为导入.py提供一些注释,比如#VARIABLES var1 var2 var3,然后

我试图在运行时动态导入Python模块,但我希望导入代码向正在导入的模块提供缺少的变量

  • Python3
    builtins
    模块可以实现我想要的行为,但我不知道这是最佳实践还是最好的方法
其次,我希望导入该文件,以告诉导入代码需要提供哪些变量。我有两种可能的解决方案:

  • 我可以运行
    exec\u模块
    ,捕捉名称错误,解析掉缺少的变量,将其添加到内置模块中,然后重新运行exec\u模块,直到成功
  • 否则,我会考虑在
    文件中为导入.py提供一些注释,比如
    #VARIABLES var1 var2 var3
    ,然后在
    执行模块之前读取文件的第一行(并解析此注释)
基本上,我所拥有的是:

文件到导入.py:

#潜在:变量我的插入的变量
打印(我的\u插入的\u变量)
执行导入.py的文件

#'values'是我可以提供的一些价值字典
complete,stored_uattributes=False,set()
虽然尚未完成:
尝试:
规范加载程序执行模块(foo)
完成=正确
除名称错误为e外:
name=str(e).split(“”)[1]
如果名称不在值中:
提高e
setattr(内置、名称、值.get(名称))
存储的属性。添加(名称)
对于存储的_属性中的k:
delattr(内置,k)
只是想知道
内置
是否是完成将数据从导入代码传递到导入模块的最佳方法