OpenPipe/ART

`load_trajectories` requires backend dependencies

Closed this issue · 0 comments

I'm unable to import load_trajectories on my macbook because it pulls in a backend dependency that eventually requires tblib to be installed. Since it's only used on the client side, load_trajectories shouldn't rely on backend imports at all.

This bug prevents me from displaying benchmarks on my local machine.

Full trace:

Cell In[1], line 5
      2 import os
      3 from dotenv import load_dotenv
----> 5 from art.utils.benchmarking.load_trajectories import load_trajectories
      6 from art.utils.benchmarking.charts import (
      7     percentage_comparison_bar_chart,
      8     training_progress_chart,
      9 )
     10 import art.utils.benchmarking.charts

File ~/project/agent-reinforcement-training/src/art/utils/benchmarking/load_trajectories.py:15
     12 from tqdm.auto import tqdm
     14 from art.model import Model as ArtModel
---> 15 from art.local import LocalBackend
     16 from art.utils.get_repo_root_path import get_repo_root_path
     17 from art.utils.output_dirs import (
     18     get_default_art_path,
     19     get_models_dir,
     20     get_trajectories_dir,
     21 )

File ~/project/agent-reinforcement-training/src/art/local/__init__.py:1
----> 1 from .backend import LocalBackend
      3 __all__ = ["LocalBackend"]

File ~/project/agent-reinforcement-training/src/art/local/backend.py:16
     10 from art.utils.output_dirs import (
     11     get_default_art_path,
     12     get_model_dir,
     13     get_trajectories_split_dir,
     14 )
     15 from art.utils.trajectory_logging import serialize_trajectory_groups
---> 16 from mp_actors import move_to_child_process
     17 import numpy as np
     18 import os

File ~/project/agent-reinforcement-training/src/mp_actors/__init__.py:1
----> 1 from .move import move_to_child_process
      3 __all__ = ["move_to_child_process"]

File ~/project/agent-reinforcement-training/src/mp_actors/move.py:9
      7 import setproctitle
      8 import sys
----> 9 from tblib import pickling_support
     10 from typing import Any, AsyncGenerator, cast, TypeVar
     11 import uuid

ModuleNotFoundError: No module named 'tblib'