[7.0.2.3] Error loading layout saved from 6.2

I get all of this when I try to load a layout file that was saved from Deadline 6.

[code]Traceback (most recent call last):
File “…\Submodules\ThinkboxUI\UI\Controls\ExtendedTreeView.py”, line 766, in restoreState
ImportError: (‘No module named PyQt4.QtCore’, , (‘PyQt4.QtCore’, ‘QByteArray’, (’\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x08\x01\x00\x00\x00&\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\n\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x08\x00\x00\x00\r\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x18\x00\x00\x00\t\x00\x00\x00\x19\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x1a\x00\x00\x00\x12\x00\x00\x00\x1b\x00\x00\x00\x17\x00\x00\x00\x1c\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x0b\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00 \x00\x00\x00!\x00\x00\x00"\x00\x00\x00#\x00\x00\x00$\x00\x00\x00%\x00\x00\x00&\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x11\x00\x00\x00\x04\x00\x00\x00\x1c\x00\x00\x00\r\x00\x00\x00\t\x00\x00\x00\n\x00\x00\x00\x0b\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x15\x00\x00\x00\x17\x00\x00\x00\x19\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00 \x00\x00\x00!\x00\x00\x00"\x00\x00\x00#\x00\x00\x00$\x00\x00\x00%\x00\x00\x00&\x00\x00\xe8\xff?\x00\x00\x00\x12\x00\x00\x00$\x00\x00\x00d\x00\x00\x00#\x00\x00\x00d\x00\x00\x00"\x00\x00\x00d\x00\x00\x00!\x00\x00\x00d\x00\x00\x00 \x00\x00\x00d\x00\x00\x00\x1f\x00\x00\x00d\x00\x00\x00\x1e\x00\x00\x00d\x00\x00\x00\x1d\x00\x00\x00d\x00\x00\x00\x1a\x00\x00\x00d\x00\x00\x00\x19\x00\x00\x00d\x00\x00\x00\x18\x00\x00\x01\x10\x00\x00\x00\x17\x00\x00\x00d\x00\x00\x00\x15\x00\x00\x00d\x00\x00\x00\x12\x00\x00\x00d\x00\x00\x00\x10\x00\x00\x00d\x00\x00\x00\x05\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00%\x00\x00\x00d\x00\x00\x0b\xa7\x00\x00\x00&\x01\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00d\xff\xff\xff\xff\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x01\xf3\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00O\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x008\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00g\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x01\x17\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xcb\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x00’,)))

Traceback (most recent call last):
File “DeadlineMonitor\UI\Controls\JobListControl.py”, line 1394, in restoreState
ImportError: (‘No module named PyQt4.QtCore’, , (‘PyQt4.QtCore’, ‘QByteArray’, (’\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x08\x01\x00\x00\x00&\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\n\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x08\x00\x00\x00\r\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x18\x00\x00\x00\t\x00\x00\x00\x19\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x1a\x00\x00\x00\x12\x00\x00\x00\x1b\x00\x00\x00\x17\x00\x00\x00\x1c\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x0b\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00 \x00\x00\x00!\x00\x00\x00"\x00\x00\x00#\x00\x00\x00$\x00\x00\x00%\x00\x00\x00&\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x11\x00\x00\x00\x04\x00\x00\x00\x1c\x00\x00\x00\r\x00\x00\x00\t\x00\x00\x00\n\x00\x00\x00\x0b\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x15\x00\x00\x00\x17\x00\x00\x00\x19\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00 \x00\x00\x00!\x00\x00\x00"\x00\x00\x00#\x00\x00\x00$\x00\x00\x00%\x00\x00\x00&\x00\x00\xe8\xff?\x00\x00\x00\x12\x00\x00\x00$\x00\x00\x00d\x00\x00\x00#\x00\x00\x00d\x00\x00\x00"\x00\x00\x00d\x00\x00\x00!\x00\x00\x00d\x00\x00\x00 \x00\x00\x00d\x00\x00\x00\x1f\x00\x00\x00d\x00\x00\x00\x1e\x00\x00\x00d\x00\x00\x00\x1d\x00\x00\x00d\x00\x00\x00\x1a\x00\x00\x00d\x00\x00\x00\x19\x00\x00\x00d\x00\x00\x00\x18\x00\x00\x01\x10\x00\x00\x00\x17\x00\x00\x00d\x00\x00\x00\x15\x00\x00\x00d\x00\x00\x00\x12\x00\x00\x00d\x00\x00\x00\x10\x00\x00\x00d\x00\x00\x00\x05\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00%\x00\x00\x00d\x00\x00\x0b\xa7\x00\x00\x00&\x01\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00d\xff\xff\xff\xff\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x01\xf3\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00O\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x008\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00g\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x01\x17\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xcb\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x00’,)))

Traceback (most recent call last):
File “DeadlineMonitor\UI\Forms\MonitorDockWidget.py”, line 373, in restoreWidgetState
File “DeadlineMonitor\UI\DisplayWidgets\JobInfoWidget.py”, line 48, in restoreWidgetState
File “DeadlineMonitor\UI\Controls\JobInfoControl.py”, line 104, in restoreState
File “/usr/local/Thinkbox/Deadline7/bin/python/lib/python2.7/pickle.py”, line 1382, in loads
return Unpickler(file).load()
File “/usr/local/Thinkbox/Deadline7/bin/python/lib/python2.7/pickle.py”, line 858, in load
dispatchkey
File “/usr/local/Thinkbox/Deadline7/bin/python/lib/python2.7/pickle.py”, line 1133, in load_reduce
value = func(*args)
ImportError: No module named PyQt4.QtCore

Traceback (most recent call last):
File “DeadlineMonitor\UI\Forms\MainWindow.py”, line 752, in loadSettings
AttributeError: ‘NoneType’ object has no attribute ‘split’[/code]

The first few are due to the Qt 4 -> 5 changeover, but pickling Qt objects just seems like a bad idea…

Yeah… I’m not sure why we’re doing that. I’ll talk to the guy who wrote that and see what our justification was.

As far as I can remember, Qt just has a function that hands us a byte buffer when we ask it for layout information.

Update: I did some digging, and I have seen a few places recommend against pickling long term objects…
wiki.python.org/moin/UsingPickle (see ‘discussion’).