fix(docker): fix libero_plus deps by replacing git dep with lerobot[libero]

The libero @ git+...@main dep had empty install_requires, causing uv to
skip robosuite (and other deps) during resolution — they appeared
"already resolved" from a stale git dep cache even though not installed.

Fix: use lerobot[libero] as the dep source (hf-libero properly declares
all deps including robosuite via robomimic). The LIBERO-plus Python
module is installed from the git clone with --no-deps, so hf-libero's
declared deps are used but LIBERO-plus's environments override via .pth.

Also remove egl_probe (broken original) duplicate alongside hf-egl-probe.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Pepijn
2026-03-22 20:57:14 -07:00
parent 2cd06fe95b
commit ee3354a885
2 changed files with 9 additions and 8 deletions
+4
View File
@@ -15,7 +15,11 @@
FROM lerobot-eval-base:latest FROM lerobot-eval-base:latest
RUN uv pip install --no-cache ".[libero_plus]" \ RUN uv pip install --no-cache ".[libero_plus]" \
# Clone LIBERO-plus; its setup.py has empty install_requires so deps come from the
# lerobot[libero] extra above. Install the package to get LIBERO-plus environments,
# then add a .pth so the libero module can locate its data files at runtime.
&& git clone --depth 1 https://github.com/sylvestf/LIBERO-plus.git /tmp/LIBERO-plus \ && git clone --depth 1 https://github.com/sylvestf/LIBERO-plus.git /tmp/LIBERO-plus \
&& uv pip install --no-cache --no-deps /tmp/LIBERO-plus \
&& python -c "import pathlib, site; pathlib.Path(site.getsitepackages()[0], 'libero_plus_repo.pth').write_text('/tmp/LIBERO-plus\n')" \ && python -c "import pathlib, site; pathlib.Path(site.getsitepackages()[0], 'libero_plus_repo.pth').write_text('/tmp/LIBERO-plus\n')" \
&& python -c "import libero, robosuite, bddl" && python -c "import libero, robosuite, bddl"
+5 -8
View File
@@ -185,20 +185,17 @@ libero = [
"lerobot[scipy-dep]", "lerobot[scipy-dep]",
] ]
libero_plus = [ libero_plus = [
"lerobot[transformers-dep]", # Inherit all of libero's deps (hf-libero → robosuite/robomimic/egl-probe/scipy/transformers).
"hf-egl-probe>=1.0.1; sys_platform == 'linux'", # LIBERO-plus extends LIBERO with extra task suites; its Python module is installed
"egl_probe>=1.0.1; sys_platform == 'linux'", # from the git clone in Dockerfile.eval-libero-plus (overrides hf-libero via .pth).
"libero @ git+https://github.com/sylvestf/LIBERO-plus.git@main ; sys_platform == 'linux'", "lerobot[libero]",
# LIBERO-plus setup.py has empty install_requires; declare its runtime deps here. # Additional runtime deps declared by LIBERO-plus but absent from its setup.py:
"robosuite>=1.4.0,<1.5.0; sys_platform == 'linux'",
"bddl>=1.0.1,<2.0.0; sys_platform == 'linux'", "bddl>=1.0.1,<2.0.0; sys_platform == 'linux'",
"future; sys_platform == 'linux'", # bddl transitive dep not declared in its metadata "future; sys_platform == 'linux'", # bddl transitive dep not declared in its metadata
"robomimic>=0.2.0,<0.3.0; sys_platform == 'linux'",
"easydict>=1.9; sys_platform == 'linux'", "easydict>=1.9; sys_platform == 'linux'",
"wand; sys_platform == 'linux'", "wand; sys_platform == 'linux'",
"scikit-image>=0.20.0; sys_platform == 'linux'", "scikit-image>=0.20.0; sys_platform == 'linux'",
"gym>=0.25.0,<0.27.0; sys_platform == 'linux'", "gym>=0.25.0,<0.27.0; sys_platform == 'linux'",
"lerobot[scipy-dep]",
] ]
libero-plus = ["lerobot[libero_plus]"] libero-plus = ["lerobot[libero_plus]"]
robomme = [ robomme = [