comfy-env 0.1.4__py3-none-any.whl → 0.1.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
comfy_env/workers/mp.py CHANGED
@@ -40,7 +40,55 @@ _SHUTDOWN = object()
40
40
  _CALL_METHOD = "call_method"
41
41
 
42
42
 
43
- def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, env_vars=None):
43
+ def _dump_worker_env(worker_name: str = "unknown", print_to_terminal: bool = False):
44
+ """Dump worker environment to .comfy-env/logs/ (always) and optionally print."""
45
+ import json
46
+ import os
47
+ import platform
48
+ import sys
49
+ from datetime import datetime
50
+ from pathlib import Path
51
+
52
+ log_dir = Path.cwd() / ".comfy-env" / "logs"
53
+ log_dir.mkdir(parents=True, exist_ok=True)
54
+
55
+ debug_info = {
56
+ "timestamp": datetime.now().isoformat(),
57
+ "worker_name": worker_name,
58
+ "pid": os.getpid(),
59
+ "cwd": os.getcwd(),
60
+ "python": {
61
+ "executable": sys.executable,
62
+ "version": sys.version,
63
+ "prefix": sys.prefix,
64
+ },
65
+ "platform": {
66
+ "system": platform.system(),
67
+ "machine": platform.machine(),
68
+ "release": platform.release(),
69
+ },
70
+ "env_vars": dict(os.environ),
71
+ "sys_path": sys.path,
72
+ "modules_loaded": sorted(sys.modules.keys()),
73
+ }
74
+
75
+ log_file = log_dir / f"worker_{worker_name}_{os.getpid()}.json"
76
+ log_file.write_text(json.dumps(debug_info, indent=2, default=str))
77
+
78
+ if print_to_terminal:
79
+ print(f"[comfy-env] === WORKER ENV DEBUG: {worker_name} ===")
80
+ print(f"[comfy-env] Python: {sys.executable}")
81
+ print(f"[comfy-env] Version: {sys.version.split()[0]}")
82
+ print(f"[comfy-env] PID: {os.getpid()}, CWD: {os.getcwd()}")
83
+ for var in ['PATH', 'LD_LIBRARY_PATH', 'PYTHONPATH', 'OMP_NUM_THREADS', 'KMP_DUPLICATE_LIB_OK']:
84
+ val = os.environ.get(var, '<unset>')
85
+ if len(val) > 100:
86
+ val = val[:100] + '...'
87
+ print(f"[comfy-env] {var}={val}")
88
+ print(f"[comfy-env] Env dumped to: {log_file}")
89
+
90
+
91
+ def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, env_vars=None, worker_name=None):
44
92
  """
45
93
  Worker process main loop.
46
94
 
@@ -57,6 +105,7 @@ def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, en
57
105
  sys_path_additions: Paths to add to sys.path
58
106
  lib_path: Path to add to LD_LIBRARY_PATH (for conda libraries)
59
107
  env_vars: Environment variables to set (from comfy-env.toml)
108
+ worker_name: Name of the worker (for logging)
60
109
  """
61
110
  import os
62
111
  import sys
@@ -69,6 +118,10 @@ def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, en
69
118
  # Set worker mode env var
70
119
  os.environ["COMFYUI_ISOLATION_WORKER"] = "1"
71
120
 
121
+ # Always dump env to file, print to terminal if debug enabled
122
+ print_debug = os.environ.get("COMFY_ENV_DEBUG", "").lower() in ("1", "true", "yes")
123
+ _dump_worker_env(worker_name or "unknown", print_to_terminal=print_debug)
124
+
72
125
  # DLL/library isolation - match SubprocessWorker's isolation level
73
126
  # Filter out conflicting paths from conda/mamba/etc and use proper DLL registration
74
127
  path_sep = ";" if sys.platform == "win32" else ":"
@@ -511,7 +564,7 @@ class MPWorker(Worker):
511
564
  self._queue_out = ctx.Queue()
512
565
  self._process = ctx.Process(
513
566
  target=_worker_loop,
514
- args=(self._queue_in, self._queue_out, self._sys_path, self._lib_path, self._env_vars),
567
+ args=(self._queue_in, self._queue_out, self._sys_path, self._lib_path, self._env_vars, self.name),
515
568
  daemon=True,
516
569
  )
517
570
  self._process.start()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comfy-env
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: Environment management for ComfyUI custom nodes - CUDA wheel resolution and process isolation
5
5
  Project-URL: Homepage, https://github.com/PozzettiAndrea/comfy-env
6
6
  Project-URL: Repository, https://github.com/PozzettiAndrea/comfy-env
@@ -22,11 +22,11 @@ comfy_env/templates/comfy-env-instructions.txt,sha256=ve1RAthW7ouumU9h6DM7mIRX1M
22
22
  comfy_env/templates/comfy-env.toml,sha256=ROIqi4BlPL1MEdL1VgebfTHpdwPNYGHwWeigI9Kw-1I,4831
23
23
  comfy_env/workers/__init__.py,sha256=TMVG55d2XLP1mJ3x1d16H0SBDJZtk2kMC5P4HLk9TrA,1073
24
24
  comfy_env/workers/base.py,sha256=4ZYTaQ4J0kBHCoO_OfZnsowm4rJCoqinZUaOtgkOPbw,2307
25
- comfy_env/workers/mp.py,sha256=lKCdFJ0-OE5-ItJxcfXxoBTiESGU-5mUcTerU1WnUbk,27404
25
+ comfy_env/workers/mp.py,sha256=xqSLnpR5zSVdZKt10nM6LmNyJ2SmlSr1yQ5I9HX5OJ4,29514
26
26
  comfy_env/workers/subprocess.py,sha256=UMhKhaJoSjv2-FWnwQq9TeMWtaDLIs3ajAFTq1ngdJw,57844
27
27
  comfy_env/workers/tensor_utils.py,sha256=TCuOAjJymrSbkgfyvcKtQ_KbVWTqSwP9VH_bCaFLLq8,6409
28
- comfy_env-0.1.4.dist-info/METADATA,sha256=pkg8IsTN2rxSPTDlg3WlMuiRJ74VcQ3O4qvFaa5FC8E,6945
29
- comfy_env-0.1.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
30
- comfy_env-0.1.4.dist-info/entry_points.txt,sha256=J4fXeqgxU_YenuW_Zxn_pEL7J-3R0--b6MS5t0QmAr0,49
31
- comfy_env-0.1.4.dist-info/licenses/LICENSE,sha256=E68QZMMpW4P2YKstTZ3QU54HRQO8ecew09XZ4_Vn870,1093
32
- comfy_env-0.1.4.dist-info/RECORD,,
28
+ comfy_env-0.1.6.dist-info/METADATA,sha256=IT7HN3q_Q7hdsZqcGRbgtoeKBTN6z_1Gzr8KhVtPpg0,6945
29
+ comfy_env-0.1.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
30
+ comfy_env-0.1.6.dist-info/entry_points.txt,sha256=J4fXeqgxU_YenuW_Zxn_pEL7J-3R0--b6MS5t0QmAr0,49
31
+ comfy_env-0.1.6.dist-info/licenses/LICENSE,sha256=E68QZMMpW4P2YKstTZ3QU54HRQO8ecew09XZ4_Vn870,1093
32
+ comfy_env-0.1.6.dist-info/RECORD,,