From fb64ea1b16491ac702120d0b107d712b41d456b0 Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Wed, 10 Jun 2026 16:12:54 +0200 Subject: [PATCH] PYHTONHOME und PYTHONPATH aus Umgebung rausgeworfen. Wenn die .venv verwendet wird ist das ein problem. --- Lisp/ssg_dbg.lsp | 2 +- bin/on_start.lsp | 3 +++ bin/setenv.bat | 22 ++++++++++++---------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Lisp/ssg_dbg.lsp b/Lisp/ssg_dbg.lsp index 4281817..2252acd 100644 --- a/Lisp/ssg_dbg.lsp +++ b/Lisp/ssg_dbg.lsp @@ -98,7 +98,7 @@ (if (and envvar (/= envvar "")) (progn (setq dir (getenv envvar)) - (prompt (strcat "\n[DBG] getenv " envvar " = " (if dir dir "nil"))) + ;;(prompt (strcat "\n[DBG] getenv " envvar " = " (if dir dir "nil"))) ) ) (if (or (not dir) (= dir "")) diff --git a/bin/on_start.lsp b/bin/on_start.lsp index 9fc0471..6609b34 100644 --- a/bin/on_start.lsp +++ b/bin/on_start.lsp @@ -67,6 +67,9 @@ ((and (getenv "APPDATA") (findfile (strcat (getenv "APPDATA") "/Python/Python312/site-packages/pyrx/RxLoaderV" ver-major ".0.brx"))) (strcat (getenv "APPDATA") "/Python/Python312/site-packages/pyrx")) + ((and (getenv "LOCALAPPDATA") + (findfile (strcat (getenv "LOCALAPPDATA") "/Programs/Python/Python312/Lib/site-packages/pyrx/RxLoaderV" ver-major ".0.brx"))) + (strcat (getenv "LOCALAPPDATA") "/Programs/Python/Python312/Lib/site-packages/pyrx")) (t nil) ) ) diff --git a/bin/setenv.bat b/bin/setenv.bat index 215c744..ce6a106 100644 --- a/bin/setenv.bat +++ b/bin/setenv.bat @@ -30,15 +30,19 @@ set BRISCAD="C:\Program Files\Bricsys\BricsCAD V25 de_DE\bricscad.exe" -REM Python-Umgebung fuer PyRx (BricsCAD benoetigt PYTHONHOME + python312.dll im PATH) -set "PYTHONHOME=C:\Python312" -set "PATH=C:\Python312;%PATH%" +REM Python-Umgebung fuer PyRx +REM WICHTIG: PYTHONHOME/PYTHONPATH NICHT setzen - bringt die +REM PyRx-Embedding-Initialisierung in BricsCAD zum Absturz +REM ("failed to get the Python code of the filesystem encoding"). +REM Der RxLoader in der .venv findet Basis-Python und site-packages +REM selbst ueber pyvenv.cfg. DXFM_LIB wird ueber eine .pth-Datei +REM in der venv eingebunden (siehe unten). +set "PYTHONHOME=" +set "PYTHONPATH=" -REM Python-Pfad erweitern (nur wenn noch nicht vorhanden) -echo %PYTHONPATH% | find /i "%DXFM_LIB%" >nul -if errorlevel 1 ( - set "PYTHONPATH=%DXFM_LIB%;%DXFMAKRO%\.venv\Lib\site-packages;%PYTHONPATH%" -) +REM .pth-Datei sicherstellen, damit DXFM_LIB im Python-Pfad ist +set "DXFM_PTH=%DXFMAKRO%\.venv\Lib\site-packages\dxfmakros.pth" +if not exist "%DXFM_PTH%" echo %DXFM_LIB%> "%DXFM_PTH%" REM Ordner erstellen falls sie nicht existieren if not exist "%DXFM_BIN%" mkdir "%DXFM_BIN%" @@ -57,8 +61,6 @@ REM Umgebungsvariablen anzeigen echo. echo ================================================================ echo DXFMAKRO = %DXFMAKRO% -echo PYTHONHOME = %PYTHONHOME% -echo PYTHONPATH = %PYTHONPATH% echo ================================================================ echo.