System Information
Operating system: macOS
Graphics card: N/A
Blender Version
Broken: 2.83 beta
Worked: Never
Included USD libraries cause symbol conflict with addons using USD python bindings. That is, if an addon wants to use USD in it (as a python c-extension most likely), there is an error:
"FATAL ERROR: [TF_DEBUG_ENVIRONMENT_SYMBOL] multiple symbol definitions. This is usually due to software misconfiguration. Contact the build team for assistance. (duplicate 'TF_SCRIPT_MODULE_LOADER') in _Add at line 96 of /Users/brecht/dev/build_darwin/deps/build/usd/src/external_usd/pxr/base/lib/tf/debug.cpp"
Exact steps for others to reproduce the error
- Download and extract a build of USD. These ones have python3 bindings (I built my own). https://developer.nvidia.com/usd#bin
- Open python editor in blender.
- Run commands:
import sys
sys.path.append("PATH_TO_USD/lib/python") # this is to get the pythonpath right
from pxr import UsdSo I can see two possible solutions to this.
- include python bindings with Blender
- somehow fix the symbol names in the blender side or in the external USD build so they don't clash. I tried to do this with specifying a different namespace name than "pxr" in the USD build but this didn't seem to help.
3, link python bindings of USD against blender.exe (Not sure how/if this would work)
Willing to work on the solution, but wanted input from Blender developers.