Python: Library not loaded, Reason: image not found when loading module on macOS 10.14 Mojave, pyenv

   5899   1   0
User Avatar
Member
3 posts
Joined: Sept. 2018
Offline
Hi,

Following the installation instructions I ran the Houdini Terminal 16.5.571 so the houmodule can be imported. This part seems to work well, however it fails loading the dynamic libraries.

Traceback (most recent call last):
  File "myscript.py", line 7, in <module>
    import hou
  File "/Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/hou.py", line 19, in <module>
    import _hou
ImportError: dlopen(/Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so, 2): Library not loaded: @rpath/Houdini.framework/Versions/16.5.571/Houdini
  Referenced from: /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so
  Reason: image not found

I also added `/Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs to _virtualenv_path_extensions.pth` in my `site-packages`.

Any suggestions on how to fix this?

Operating system: macOS 10.14 Mojave
Python version: 2.7.14 using pyenv
Edited by christianklotz - Sept. 27, 2018 12:00:23
User Avatar
Member
3 posts
Joined: Sept. 2018
Offline
The answer on StackOverflow [stackoverflow.com] pointed me into the right direction, suggesting to rewrite the dynamic library paths using otool.

Listing all libraries loaded by hou.soshows the following list, with @rpath/Houdini.framework/Versions/16.5.571/Houdinibeing the one that causes the issue.

otool -L /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so
/Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so:
    @rpath/Houdini.framework/Versions/16.5.571/Houdini (compatibility version 1.0.0, current version 16.5.255)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1443.14.0)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0)
    /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)

Rewriting the path can be done using install_name_tool -change.

install_name_tool -change @rpath/Houdini.framework/Versions/16.5.571/Houdini /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/16.5.571/Houdini /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so

It may be better to use a relative path.
Edited by christianklotz - Sept. 28, 2018 07:58:01
  • Quick Links