Fix: Blender as Python Module shared library directory wrong

This could affect for example the USD and MaterialX Python modules
that are now bundled, and need appropriate paths to their libraries.

Ref #134676

Pull Request: https://projects.blender.org/blender/blender/pulls/134937
This commit is contained in:
Brecht Van Lommel
2025-02-26 15:19:23 +01:00
parent d2ecf66492
commit 0741d0141e

View File

@@ -7,15 +7,25 @@
import sys
import os
exe_dir, exe_file = os.path.split(sys.executable)
is_python = exe_file.startswith("python")
# Path to Blender shared libraries.
shared_lib_dirname = "blender.shared" if sys.platform == "win32" else "lib"
if is_python:
shared_lib_dir = os.path.abspath(os.path.join(exe_dir, "..", "..", "..", shared_lib_dirname))
if os.path.basename(__file__) == "bpy_site_customize.py":
# Blender as Python Module.
is_python = True
shared_lib_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", ".."))
# On Windows no subdirectory is used.
if sys.platform != "win32":
shared_lib_dir = os.path.join(shared_lib_dir, shared_lib_dirname)
else:
shared_lib_dir = os.path.abspath(os.path.join(exe_dir, shared_lib_dirname))
exe_dir, exe_file = os.path.split(sys.executable)
is_python = exe_file.startswith("python")
if is_python:
# Python executable bundled with Blender.
shared_lib_dir = os.path.abspath(os.path.join(exe_dir, "..", "..", "..", shared_lib_dirname))
else:
# Blender executable.
shared_lib_dir = os.path.abspath(os.path.join(exe_dir, shared_lib_dirname))
if sys.platform == "win32":
# Directory for extensions to find DLLs.