Community
Arnold for Houdini Forum
Rendering with Arnold in Houdini and Solaris using the HtoA plug-in.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Load HTOA package from UNC network folder bug

6 REPLIES 6
Reply
Message 1 of 7
AlexOddbratt
475 Views, 6 Replies

Load HTOA package from UNC network folder bug

We're trying to install htoa-6.0.1.0_rb2fc4a5_houdini-19.0.383.py3_windows through a package on our server. If I use a mount point in the path it works fine but if I instead try it with a UNC path it loads but spits out a bunch of python errors.

Works: "PATH": "z:/_pipeline/_bin/houdini/htoa/6.0.1.0_19.0.383/plugin/scripts/bin"

Fails: "PATH": "//fs/data/_pipeline/_bin/houdini/htoa/6.0.1.0_19.0.383/plugin/scripts/bin"

Error:

Traceback (most recent call last):
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.383/houdini/python3.7libs\hdefereval.py", line 155, in _processDeferred
    result = code(*args, **kwargs)
  File "//fs/data/_pipeline/_bin/houdini/htoa/6.0.1.0_19.0.383/plugin/scripts/python\htoa\dialog.py", line 59, in python_check
    py_build_version = [int(x) for x in pyVersion().split('.')]
  File "//fs/data/_pipeline/_bin/houdini/htoa/6.0.1.0_19.0.383/plugin/scripts/python\htoa\dialog.py", line 16, in pyVersion
    htoa.op_dso.pyVersion.restype = ctypes.c_void_p
AttributeError: 'NoneType' object has no attribute 'pyVersion'
Tags (1)
Labels (1)
6 REPLIES 6
Message 2 of 7

op_dso is NoneType?
The Python that sets op_dso worked ok when I used your path (it printed out the right path for me).

Can you try running this in a Python shell (with the UNC path):


import htoa
import os
import platform

folder = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(htoa.__file__))))

dso_prefix = 'htoa_'

_libext = {'windows'  :'.dll',
           'microsoft':'.dll',
           'linux'    :'.so',
           'darwin'   :'.dylib'}
           
print( os.path.join(folder, 'dso', dso_prefix + 'core' + _libext[platform.system().lower()]) )


// Stephen Blair
// Arnold Renderer Support
Message 3 of 7

A UNC path worked for me on Windows



// Stephen Blair
// Arnold Renderer Support
Message 4 of 7
AlexOddbratt
in reply to: AlexOddbratt

Hey Stephen,

Thanks for the quick response. Quite annoying that you can't reproduce it on your end as that makes it a bit tougher to figure out, but also probably means that it's just a user error from my side.

So I started houdini with arnold loading from our server via a UNC path and got the same weird python error. I then ran you code snippet in a python shell and it printed the path fine.

But if I then try to just hit render on an arnold rop exporting a simple grid to a standin I get the funky error below so something get's really wonky when I try to load arnold via the UNC path.

Here are the two package json files I'm trying as well as the print out in the console at launch, as I might have screwed something else up. htoa_json.zip htoa_log.txt

Failed to save output to file "Traceback (most recent call last):
File "//fs/data/_pipeline/_bin/houdini/htoa/6.0.1.0_19.0.383/plugin/soho/arnold.py", line 13, in <module>
from htoa.session import HaSession
File "C:\PROGRA~1\SIDEEF~1\HOUDIN~1.383\python37\lib\site-packages-forced\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "//fs/data/_pipeline/_bin/houdini/htoa/6.0.1.0_19.0.383/plugin/scripts/python\htoa\session.py", line 64, in <module>
ass_prefix = assPrefix()
File "//fs/data/_pipeline/_bin/houdini/htoa/6.0.1.0_19.0.383/plugin/scripts/python\htoa\session.py", line 55, in assPrefix
res = htoa.op_dso.assPrefix()
AttributeError: 'NoneType' object has no attribute 'assPrefix'
". 
Message 5 of 7

The console log looks ok, until the error at the end. Which is still op_dso being NoneType
Can you run this Python snippet. This time I included the part that tries to load the dso


import htoa
import os
import platform
import ctypes


folder = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(htoa.__file__))))


dso_prefix = 'htoa_xx'


_libext = {'windows'  :'.dll',
           'microsoft':'.dll',
           'linux'    :'.so',
           'darwin'   :'.dylib'}
           
op_dso = ctypes.CDLL( os.path.join(folder, 'dso', dso_prefix + 'core' + _libext[platform.system().lower()]) )


// Stephen Blair
// Arnold Renderer Support
Message 6 of 7
AlexOddbratt
in reply to: AlexOddbratt

If I run your snippet as is I get the below error, but if I modify it to dso_prefix = 'hota_' it runs without any issues. Capture.JPG

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\PROGRA~1\SIDEEF~1\HOUDIN~1.383\python37\lib\ctypes\__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
Message 7 of 7

Oops, that xx was me testing something, sorry.

So, it works. But somehow it doesn't work when run as part of the module.



// Stephen Blair
// Arnold Renderer Support

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report