What's the status of Tractor and Houdini 19/Python 3? While Pixar hasn't done a full Python 3 Tractor release yet, they do have their "tractor" Python API package converted, in Renderman 24. We don't have RMan24, but they also provided a beta of the package in their forum, and we've been using that successfully with Nuke 13, for instance, and put it on PYTHONPATH for our Houdini 19 setups. We can do PDG/TOP submissions from Windows to our (linux) Tractor farm, but when the main PDG cooking task runs on the farm, it throws the error below, in pdgmq.py.
It looks like TractorSpooler.spool_tractor_task() has a "drain()" subfunction which creates a NamedTemporaryFile and tries to write the TCL text of a tractor job to it. In Python3, the temp files get opened "w+b" by default, and the write() method wants "bytes", while the TCL job text is a "str". The temp file should probably be opened with in explicit "w" mode so it will accept the TCL "str"?
Does a basic spooling problem like this mean Tractor is not currently supported by Houdini 19?
Exception in thread Thread-1:
Traceback (most recent call last):
File "/opt/houdini/hfs19.0/python/lib/python3.7/threading.py", line 926, in _bootstrap_inner
self.run()
File "/opt/houdini/hfs19.0/houdini/python3.7libs/hou.py", line 99522, in __threadRun
self.__run()
File "/opt/houdini/hfs19.0/python/lib/python3.7/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/opt/houdini/hfs19.0/houdini/python3.7libs/pdgjob/pdgmq.py", line 211, in drain
tempf.write(self._tractortaskqueue.popleft())
File "/opt/houdini/hfs19.0/python/lib/python3.7/tempfile.py", line 481, in func_wrapper
return func(*args, **kwargs)
TypeError: a bytes-like object is required, not 'str'