drozdgk commited on
Commit
ca75be0
·
1 Parent(s): b71073c

fix: ensure vendored detectron2 on PYTHONPATH for subprocesses

Browse files
Files changed (1) hide show
  1. mvp.py +25 -2
mvp.py CHANGED
@@ -49,6 +49,11 @@ except Exception:
49
  REPO_ROOT = os.path.dirname(os.path.abspath(__file__))
50
  sys.path.append(os.path.join(REPO_ROOT, "vggt"))
51
  MK_PATH = os.path.join(REPO_ROOT, "MaskClustering")
 
 
 
 
 
52
 
53
  # Writable workdir (HF Spaces: prefer /tmp)
54
  WORK_DIR = os.environ.get("ZOO3D_WORKDIR", os.path.join(tempfile.gettempdir(), "zoo3d"))
@@ -655,6 +660,14 @@ def reconstruct(
655
  os.path.join(MK_PATH, cropformer_name),
656
  ],
657
  check=True,
 
 
 
 
 
 
 
 
658
  )
659
 
660
  subprocess.run(
@@ -672,7 +685,12 @@ def reconstruct(
672
  )
673
 
674
  env = dict(os.environ)
675
- env["PYTHONPATH"] = MK_PATH + (os.pathsep + env["PYTHONPATH"] if env.get("PYTHONPATH") else "")
 
 
 
 
 
676
  subprocess.run(
677
  [
678
  sys.executable,
@@ -941,7 +959,12 @@ def detect_objects(text_labels, target_dir, conf_thres, *viz_args):
941
  print(f"Text features: {text_features}")
942
  try:
943
  env = dict(os.environ)
944
- env["PYTHONPATH"] = MK_PATH + (os.pathsep + env["PYTHONPATH"] if env.get("PYTHONPATH") else "")
 
 
 
 
 
945
  root_input_dir = os.path.dirname(target_dir)
946
  seq_name = os.path.basename(target_dir)
947
  subprocess.run(
 
49
  REPO_ROOT = os.path.dirname(os.path.abspath(__file__))
50
  sys.path.append(os.path.join(REPO_ROOT, "vggt"))
51
  MK_PATH = os.path.join(REPO_ROOT, "MaskClustering")
52
+ DETECTRON2_ROOT = os.path.join(REPO_ROOT, "MaskClustering", "third_party", "detectron2")
53
+
54
+ # If detectron2 isn't installed as a package, allow importing from vendored source.
55
+ if os.path.isdir(DETECTRON2_ROOT) and DETECTRON2_ROOT not in sys.path:
56
+ sys.path.append(DETECTRON2_ROOT)
57
 
58
  # Writable workdir (HF Spaces: prefer /tmp)
59
  WORK_DIR = os.environ.get("ZOO3D_WORKDIR", os.path.join(tempfile.gettempdir(), "zoo3d"))
 
660
  os.path.join(MK_PATH, cropformer_name),
661
  ],
662
  check=True,
663
+ env={
664
+ **os.environ,
665
+ # Ensure detectron2 is importable even if not installed via pip
666
+ "PYTHONPATH": DETECTRON2_ROOT
667
+ + os.pathsep
668
+ + MK_PATH
669
+ + (os.pathsep + os.environ["PYTHONPATH"] if os.environ.get("PYTHONPATH") else ""),
670
+ },
671
  )
672
 
673
  subprocess.run(
 
685
  )
686
 
687
  env = dict(os.environ)
688
+ env["PYTHONPATH"] = (
689
+ DETECTRON2_ROOT
690
+ + os.pathsep
691
+ + MK_PATH
692
+ + (os.pathsep + env["PYTHONPATH"] if env.get("PYTHONPATH") else "")
693
+ )
694
  subprocess.run(
695
  [
696
  sys.executable,
 
959
  print(f"Text features: {text_features}")
960
  try:
961
  env = dict(os.environ)
962
+ env["PYTHONPATH"] = (
963
+ DETECTRON2_ROOT
964
+ + os.pathsep
965
+ + MK_PATH
966
+ + (os.pathsep + env["PYTHONPATH"] if env.get("PYTHONPATH") else "")
967
+ )
968
  root_input_dir = os.path.dirname(target_dir)
969
  seq_name = os.path.basename(target_dir)
970
  subprocess.run(