dill: TypeError: 'module' object is not callable when dill.load() is run from different files

dill: TypeError: 'module' object is not callable when dill.load() is run from different files

我使用 dill 将 python 个对象存储到一个文件中,例如:

with open(filename, 'wb') as output_:
    dill.dump(obj, output_)

然后我从 test.dprj 文件加载存储的对象 C:...\DyS_project\testsread_write.py

import pprint
from MBD_system import read_and_write
from MBD_system.MBD_system import MBDsystem

if __name__ == "__main__":
    MBD_file_abs_path = "C:\...\test.dprj"
    mbd = read.read(MBD_file_abs_path)
    pprint(vars(mbd))

它工作正常并且打印了对象属性。但是,如果我尝试在 C 中的应用程序 DySMainWindow 中加载文件:...\DyS_project\dys.py

from MBD_system.MBD_system import MBDsystem
from MBD_system import read_and_write

class DySMainWindow(QtGui.QMainWindow):
    def __init__(self):
        super(DySMainWindow, self).__init__()

    def showOpenFileDialog(self):
        ...
        self.MBD_system = None
        self.MBD_system = read_and_write.read(filename)
        print self.MBD_system.__dict__
        pprint(vars(self.MBD_system))

字典打印正确,但是当我使用 pprint(vars()) 打印对象的属性时,它会引发:

File "C:/.../DyS_project/dys.py", line 577, in showOpenFileDialog
pprint(vars(self.MBD_system))
TypeError: 'module' object is not callable

知道哪里出了问题以及如何解决吗?

我已经解决了实际上是一个错误的隐藏类型的问题。我已经更改了代码:

import pprint

至:

from pprint import pprint