MaterialX icon indicating copy to clipboard operation
MaterialX copied to clipboard

Python bindings not working on Windows with Python 3.8+

Open JGamache-autodesk opened this issue 2 years ago • 0 comments

There was an important change in how paths are searched on the Windows platform, and it requires adding the following code (or something similar):

# Python 3.8+ on Windows: DLL search paths for dependent
# shared libraries
# Refs.:
# - https://github.com/python/cpython/issues/80266
# - https://docs.python.org/3.8/library/os.html#os.add_dll_directory
import os
import sys
if sys.platform == "win32" and sys.version_info >= (3, 8):
    # On a standard installation, this file is in %INSTALLDIR%\python\MaterialX
    # We need to add %INSTALLDIR%\bin to the DLL path.
    mxdir = os.path.dirname(__file__)
    pydir = os.path.split(mxdir)[0]
    installdir = os.path.split(pydir)[0]
    bindir = os.path.join(installdir, "bin")
    if os.path.exists(bindir):
        os.add_dll_directory(bindir)

to the top of the init.py file.

JGamache-autodesk avatar Aug 04 '23 14:08 JGamache-autodesk