Tonic commited on
Commit
c238a70
·
1 Parent(s): cf628aa

solves import error

Browse files
Files changed (1) hide show
  1. scripts/training/train_gpt_oss.py +13 -2
scripts/training/train_gpt_oss.py CHANGED
@@ -28,14 +28,25 @@ except Exception:
28
  # Ensure project root and config package are importable for configs that do `from config...` imports
29
  project_root = Path(__file__).resolve().parents[2]
30
  if str(project_root) not in sys.path:
 
31
  sys.path.insert(0, str(project_root))
32
  config_dir = project_root / "config"
33
  if str(config_dir) not in sys.path:
 
34
  sys.path.insert(0, str(config_dir))
35
- # Ensure 'src' is importable for modules like 'monitoring', 'model', etc.
36
  src_dir = project_root / "src"
37
  if str(src_dir) not in sys.path:
38
- sys.path.insert(0, str(src_dir))
 
 
 
 
 
 
 
 
 
39
 
40
  # Reduce tokenizer thread contention and improve CUDA allocator behavior
41
  os.environ.setdefault("TOKENIZERS_PARALLELISM", "false")
 
28
  # Ensure project root and config package are importable for configs that do `from config...` imports
29
  project_root = Path(__file__).resolve().parents[2]
30
  if str(project_root) not in sys.path:
31
+ # Put project root early so top-level packages like `config` can be resolved
32
  sys.path.insert(0, str(project_root))
33
  config_dir = project_root / "config"
34
  if str(config_dir) not in sys.path:
35
+ # Ensure the actual `config` package takes precedence over any `config.py` module elsewhere
36
  sys.path.insert(0, str(config_dir))
37
+ # Ensure 'src' is importable for modules like 'monitoring', 'model', etc., but do not shadow `config`
38
  src_dir = project_root / "src"
39
  if str(src_dir) not in sys.path:
40
+ # Append to the end to avoid overshadowing the `config` package with `src/config.py`
41
+ sys.path.append(str(src_dir))
42
+
43
+ # If a stray 'config' module (e.g., from src/config.py) is already imported, remove it so
44
+ # that the real package `config/` (with __init__.py) can be imported with submodules.
45
+ try:
46
+ if 'config' in sys.modules and not hasattr(sys.modules['config'], '__path__'):
47
+ del sys.modules['config']
48
+ except Exception:
49
+ pass
50
 
51
  # Reduce tokenizer thread contention and improve CUDA allocator behavior
52
  os.environ.setdefault("TOKENIZERS_PARALLELISM", "false")