我创建了一个模块modA,我在主程序中导入.根据我的主程序中发生的事情(它具有交互模式和批处理脚本模式),我希望modA本身可以使用TkAgg后端或ps后端导入matplotlib.有没有办法让我的主程序将信息传递给modA告诉它应该如何导入matplotlib?
澄清情况:
主要方案:
#if we are in interactive mode
#import modA which imports matplotlib using TkAgg backend
#else
#import modA which imports matplotlib using the ps backend
Run Code Online (Sandbox Code Playgroud)
模块modA:
#import matplotlib
#matplotlib.use('ps') or matplotlib.use('TkAgg') (how can I do this?)
Run Code Online (Sandbox Code Playgroud)
在您的模块中有一个功能来确定这一点.
import matplotlib
def setEnv(env):
matplotlib.use(env)
Run Code Online (Sandbox Code Playgroud)
然后在你的程序中,你可以modA.setEnv('ps')根据if-else语句条件拥有或其他东西.
这里不需要条件导入(因为您只使用一个外部模块),但可以这样做:
if condition:
import matplotlib as mlib
else:
import modifiedmatplotlib as mlib
Run Code Online (Sandbox Code Playgroud)
有关在函数内导入模块的更多信息,请参阅: