Python模块无法查看已加载的类文件

时间:2013-04-08 13:16:58

标签: python

我正在开发一个名为QREDIS的交互式建模平台。它由一组相互关联的模块组成,这些模块由安装脚本导入,并为用户提供一组模型研究功能。

作为设置的一部分,我使用

加载了一个类QMod_Template
exec(open('QMod_Template.py').read())

此类是用户可定义模型的基类;即,用户可以定义并保存新模型QMod_MyModel(QMod_Template)。这一切都很完美。我不想强迫用户以后用exec(open('QMod_MyModel.py').read())重新加载他的模型,所以我在模型LoadModel中创建了一个函数QREDIS_Model,它将加载一个指定的模型类文件(基本上exec代码的包装器。

执行此功能时,出现错误NameError: name 'QMod_Template' is not defined。总结

首先我从文件中加载一个类:

exec(open('QMod_Template.py').read())

然后我导入一个模块

import QREDIS_Model as QM

然后我尝试加载另一个模型类文件

QM.LoadModel('QMod_MyModel.py')

并获取NameError。

基本上,QREDIS_Model.LoadModel需要能够访问已加载的QMod_Template类,但不能。我已经尝试在模块和函数中声明QMod_Template为全局,但没有运气。

我认为这应该是一个简单的修复。我错过了什么?我希望这个扩展的问题能让我的问题更清楚。

0 个答案:

没有答案