From 9776adee860a0458455dd7376a6f9e2651b9357e Mon Sep 17 00:00:00 2001 From: Ziad-I <68874104+Ziad-I@users.noreply.github.com> Date: Tue, 23 Jul 2024 22:16:24 +0300 Subject: [PATCH] fix packages path for blender > 4.2 --- .../blenderbim/bim/data/webui/sioserver.py | 5 ++--- src/blenderbim/blenderbim/tool/web.py | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/data/webui/sioserver.py b/src/blenderbim/blenderbim/bim/data/webui/sioserver.py index b848a230cf..fdbef0b50c 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/sioserver.py +++ b/src/blenderbim/blenderbim/bim/data/webui/sioserver.py @@ -2,9 +2,8 @@ import sys import os import webbrowser -blenderbim_path = os.environ.get("blenderbim_path") -if blenderbim_path: - blenderbim_lib_path = os.path.join(blenderbim_path, "libs", "site", "packages") +blenderbim_lib_path = os.environ.get("blenderbim_lib_path") +if blenderbim_lib_path: sys.path.insert(0, blenderbim_lib_path) import argparse diff --git a/src/blenderbim/blenderbim/tool/web.py b/src/blenderbim/blenderbim/tool/web.py index 52cded75a7..d15d5f0a6f 100644 --- a/src/blenderbim/blenderbim/tool/web.py +++ b/src/blenderbim/blenderbim/tool/web.py @@ -34,6 +34,7 @@ import threading import queue import json from time import sleep +from pathlib import Path sio = None ws_process = None @@ -105,11 +106,23 @@ class Web(blenderbim.core.tool.Web): webui_path = os.path.join(bpy.context.scene.BIMProperties.data_dir, "webui") ws_path = os.path.join(webui_path, "sioserver.py") - addon = [a for a in addon_utils.modules() if a.bl_info["name"] == "BlenderBIM"][0] - blenderbim_path = os.path.dirname(addon.__file__) + py_version = sys.version_info + + if bpy.app.version >= (4, 2, 0): + blenderbim_lib_path = ( + Path(bpy.utils.user_resource("EXTENSIONS")) + / ".local" + / "lib" + / f"python{py_version.major}.{py_version.minor}" + / "site-packages" + ) + else: + addon = [a for a in addon_utils.modules() if a.bl_info["name"] == "BlenderBIM"][0] + blenderbim_path = os.path.dirname(addon.__file__) + blenderbim_lib_path = os.path.join(blenderbim_path, "libs", "site", "packages") env = os.environ.copy() - env["blenderbim_path"] = blenderbim_path + env["blenderbim_lib_path"] = str(blenderbim_lib_path) ws_process = subprocess.Popen( [sys.executable, ws_path, "--p", str(port), "--host", "127.0.0.1"],