Avalon-Benchmark / avalon

A 3D video game environment and benchmark designed from scratch for reinforcement learning research
https://generallyintelligent.com/avalon/
GNU General Public License v3.0
175 stars 16 forks source link

Missing dm-tree package in docker install #17

Closed dfm794 closed 1 year ago

dfm794 commented 1 year ago

Running the docker image creation with the following from the README.md, results in a trace due to missing dm-tree install

docker build -f ./docker/Dockerfile . --target dev --tag=avalon/dev
...
Step 14/18 : RUN python -m avalon.install_godot_binary
 ---> Running in 972ac7f2e8d9
Traceback (most recent call last):
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/opt/projects/avalon/avalon/install_godot_binary.py", line 16, in <module>
    from avalon.datagen.godot_env.interactive_godot_process import GODOT_BINARY_PATH
  File "/opt/projects/avalon/avalon/datagen/godot_env/interactive_godot_process.py", line 32, in <module>
    from avalon.datagen.world_creation.world_generator import GenerateAvalonWorldParams
  File "/opt/projects/avalon/avalon/datagen/world_creation/world_generator.py", line 30, in <module>
    from avalon.agent.common.util import setup_new_process
  File "/opt/projects/avalon/avalon/agent/common/util.py", line 20, in <module>
    from tree import map_structure
ModuleNotFoundError: No module named 'tree'

Inserting pip install dm-tree corrects the issue:

COPY . /opt/projects/avalon
RUN pip install -e /opt/projects/avalon
+RUN pip install dm-tree
RUN python -m avalon.install_godot_binary
zplizzi commented 1 year ago

This should be fixed now (should no longer require dm-tree), let me know if you still have trouble with it!