Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bazel + pypi installation of mujoco fails because of whitespace in name MuJoCo (mjpython).app #2118

Closed
2 tasks done
hartikainen opened this issue Oct 4, 2024 · 0 comments · Fixed by #2120
Closed
2 tasks done
Labels
bug Something isn't working

Comments

@hartikainen
Copy link
Contributor

Intro

Hi!

I am a MuJoCo user working on manipulation.

My setup

MuJoCo:
(built from dba32e8)

$ python -c "import mujoco; print(mujoco.__version__)"
3.2.3

API:
Python

OS:

$ python -c "import platform; print(f'{platform.system()=}, {platform.release()=}, {platform.machine()=}')"
platform.system()='Darwin', platform.release()='24.0.0', platform.machine()='arm64'

What's happening? What did you expect?

Installing mujoco pypi package using Bazel's rules_python fails because Bazel doesn't support whitespaces in filenames and mujoco's wheel contains MuJoCo (mjpython).app with whitespace in its name.

This can be worked around at least a couple of different way. One way is to explicitly exclude MuJoCo (mjpython).app from the installation like done here: https://github.com/hartikainen/mjx-bazel-test/blob/d93ae5f8a005323fb248f600d5e6d5a94deb315a/MODULE.bazel#L18-L22. This is not ideal as someone might actually need the MuJoCo (mjpython).app. I've verified that his works, though. Alternatively, bazelbuild/bazel#4327 suggests that --experimental_inprocess_symlink_creation might fix the problem although I haven't verified this. The requirement for experimental flag seems unideal, however.

Perhaps a better solution would be to replace the whitespace with an underscore and rename MuJoCo (mjpython).app to MuJoCo_(mjpython).app to make mujoco's Bazel installation a bit smoother?

Steps for reproduction

Clone there repository here and run bazel run //:mjx_test from the project root.

Minimal model for reproduction

N/A

Code required for reproduction

See above.

Confirmations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant