Can't open houdini submitter

Hi,
I’m having problems bringing up the deadline houdini submitter . The machine is using windows 7 x64 and using houdini 13 and deadline 6 and I have no problems setting up the deadline renderfarm that has maya and nuke components to it that has no issues so far.
I’ve followed the steps in thinkboxsoftware.com/deadline-6-houdini/ to integrate the submitter into houdini and it keeps on failing with the error: ‘import site’ failed. use -v for traceback
I’ve debuged where this occurs and it happens in the SubmitHoudiniToDeadline.py file in the CallDeadlineCommand ; specifically the subprocess.Popen part because when this part is commented out, there is no error (but no interface either).
I also tried running whatever was in this Popen in a normal python shell, and tried to simulate this and the interface comes up; I’ve also tested whatever ran in this Popen in a cmd terminal and the interface comes up as well. I’m just wondering what is happening in houdini python that doesn’t bring the interface up.
Does anyone have any idea why this error is happening or how I can get better information on what went wrong?

Hello,

The reason you are having an issue is because Houdini 13 isn’t supported in Deadline 6.0, which released several months prior to the new Houdini. The two options available are either to sign up for the 6.1 beta, which is in the late stages and production ready, or wait for 6.1 to be released, hopefully in a few week. Hope this helps.

Thanks for that. Because I have no choice on the version, I think I’ll just use the custom deadline command line submitter to work around this.
Thanks again for the help

Also, here is a quick and somewhat bad houdini submitter that does the ifd generation locally before sending it off to the deadline farm

import sys, os, subprocess, traceback, random, string,math
import hou

def getNewFolder():
    return ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(15))

deadlineCMD = 'Q:\\deadline_farm\\bin\\Windows\\deadlinecommand.exe'
houdiniEXC = 'C:\\\\Program Files\\\\Side Effects Software\\\\Houdini 13.0.237\\\\bin\\\\mantra.exe'

mantraNodes = []
mergeNodes = []
for i in hou.selectedNodes():
    if i.type().description() == "Mantra":
        mantraNodes.append(i)
    if i.type().description() == "Merge":       
        mergeNodes.append(i)       

if len(mergeNodes) == 1:
    houdiniFile = hou.hipFile.name()
    mantraNodes = []
    for n in i.inputAncestors():
        if n.type().description() == "Mantra":
            mantraNodes.append(n)

if len(mantraNodes) > 0:   
    houdiniFile = hou.hipFile.name()
    hf = os.path.split(houdiniFile)[1]

    originalConfig = {}

    deadlineCmds = []
    for mantraNode in mantraNodes:

        nodeName = mantraNode.name()

        destinationFile = mantraNode.parm('vm_picture').eval()
        
        originalConfig[mantraNode] = {'vm_picture':destinationFile,
                                      'soho_outputmode':mantraNode.parm('soho_outputmode').eval(),
                                      'soho_diskfile':mantraNode.parm('soho_diskfile').eval(),
                                      }

        mantraNode.parm('soho_outputmode').set(1)
        
        folderName = getNewFolder()
        newHoudiniFolder = os.path.join('T:\\houdini',folderName)
        ifdFolder = os.path.join(newHoudiniFolder,'IFD')
        if not os.path.isdir(ifdFolder):
            os.makedirs(ifdFolder)
        idfFile = os.path.join(ifdFolder,hf.split('.')[0]+'.$F4.ifd')
        dstIdFile = os.path.join(ifdFolder,hf.split('.')[0]+'.<STARTFRAME%4>.ifd')

        if len(destinationFile.split('.')) > 2:
            destinationFile = ".".join(destinationFile.split('.')[:-2]) + '.<STARTFRAME%4>.'+destinationFile.split('.')[-1]        
        
        mantraNode.parm('soho_diskfile').set(idfFile)    

        priority = 75
        first_frame = mantraNode.parm('f1').eval()
        last_frame = mantraNode.parm('f2').eval()
        first_frame = int(first_frame)
        last_frame = int(last_frame)

        cmd = deadlineCMD + ' -SubmitCommandLineJob -executable "'+houdiniEXC+'" -arguments "-f '+str(dstIdFile)+' -V aP '+str(destinationFile)+' " -frames '+str(first_frame)+'-'+str(last_frame) + ' -priority ' + str(priority) + ' -name "Houdini_'+str(hf)+'_'+str(nodeName)+'" -prop LimitGroups=customhoudini'
        deadlineCmds.append(cmd)

    if len(mergeNodes) == 1:
        mergeNodes[0].render()    
    else:
        for mantraNode in mantraNodes:
            first_frame = int(mantraNode.parm('f1').eval())
            last_frame = int(mantraNode.parm('f2').eval())
            idfFile = mantraNode.parm('soho_diskfile').eval()
            mantraNode.render((first_frame,last_frame),output_file=idfFile)
    print 'Done Making IFD'

    for cmd in deadlineCmds:    
        subprocess.call(cmd)
    print 'Done Submitting to farm'

    for mantraNode in mantraNodes:
        for key in originalConfig[mantraNode].keys():
            mantraNode.parm(key).set(originalConfig[mantraNode][key])
    print 'Done everything'
    
        

I know its pretty messy and I had to use deadline limits to restrict the license distribution but it works.

Thanks for posting that. I am sure everyone will be very happy you shared your efforts.