I am a postdoc at the University of Toronto and I use MuJoCo for my research on robotics.
Ideally, wheels would be provided for the all the versions supporting Python 3.9 - is there a reason not to do so?
× Failed to build `mujoco==3.5.0`
├─▶ The build backend returned an error
╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
[stdout]
running bdist_wheel
running build
running build_py
copying mujoco/specs_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/viewer.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/msh2obj_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/minimize.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/memory_leak_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/msh2obj.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/viewer_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/rollout_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/minimize_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/renderer.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/rollout.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/bindings_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/render_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/renderer_test.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/gl_context.py -> build/lib.linux-x86_64-cpython-39/mujoco
copying mujoco/usd/exporter_test.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/usd/shapes.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/usd/utils.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/usd/camera.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/usd/lights.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/usd/demo.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/usd/objects.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/usd/exporter.py -> build/lib.linux-x86_64-cpython-39/mujoco/usd
copying mujoco/glfw/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/glfw
copying mujoco/egl/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/egl
copying mujoco/egl/egl_ext.py -> build/lib.linux-x86_64-cpython-39/mujoco/egl
copying mujoco/introspect/type_parsing_test.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/enums.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/mjxmacro.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/ast_nodes.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/functions_test.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/type_parsing.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/enums_test.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/structs.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/structs_test.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/ast_nodes_test.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/introspect/functions.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect
copying mujoco/osmesa/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/osmesa
copying mujoco/cgl/cgl.py -> build/lib.linux-x86_64-cpython-39/mujoco/cgl
copying mujoco/cgl/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/cgl
copying mujoco/sysid/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid
copying mujoco/introspect/codegen/generate_functions.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect/codegen
copying mujoco/introspect/codegen/formatter.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect/codegen
copying mujoco/introspect/codegen/generate_enums.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect/codegen
copying mujoco/introspect/codegen/generate_structs.py -> build/lib.linux-x86_64-cpython-39/mujoco/introspect/codegen
copying mujoco/sysid/report/defaults.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report
copying mujoco/sysid/report/builder.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report
copying mujoco/sysid/report/utils.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report
copying mujoco/sysid/_src/timeseries.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/model_modifier.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/optimize.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/plotting.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/trajectory.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/io.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/signal_modifier.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/signal_transform.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/parameter.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/_src/residual.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/_src
copying mujoco/sysid/tests/test_trajectory.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/tests/test_parameter.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/tests/conftest.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/tests/test_signal.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/tests/test_timeseries.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/tests/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/tests/test_model_modifier.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/tests/test_integration.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/tests
copying mujoco/sysid/report/sections/video.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/covariance.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/optimization_trace.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/parameters.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/signals.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/insights.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/parameter_distribution.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/__init__.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/base.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/group.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/sysid/report/sections/row.py -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/sections
copying mujoco/testdata/msh.xml -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/testdata/model.xml -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/testdata/abdomen_1_body.msh -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/testdata/simple_usd_preview_surface.usda -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/testdata/usd_golden.usda -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/testdata/MJCF_Root.zip -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/testdata/MJCF_NoRoot.zip -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/testdata/model.urdf -> build/lib.linux-x86_64-cpython-39/mujoco/testdata
copying mujoco/sysid/report/templates/row.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/parameter_confidence.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/group.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/video.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/optimization_trace.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/parameters_table.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/covariance.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/insights.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/layout.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/plot_generic.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/report/templates/signals.html -> build/lib.linux-x86_64-cpython-39/mujoco/sysid/report/templates
copying mujoco/sysid/py.typed -> build/lib.linux-x86_64-cpython-39/mujoco/sysid
running build_ext
[stderr]
Traceback (most recent call last):
File "<string>", line 11, in <module>
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/build_meta.py", line 438, in build_wheel
return _build(['bdist_wheel'])
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/build_meta.py", line 429, in _build
return self._build_with_temp_dir(
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/build_meta.py", line 410, in _build_with_temp_dir
self.run_setup()
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/build_meta.py", line 317, in run_setup
exec(code, locals())
File "<string>", line 357, in <module>
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/__init__.py", line 117, in setup
return distutils.core.setup(**attrs) # type: ignore[return-value]
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 186, in setup
return run_commands(dist)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
dist.run_commands()
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
self.run_command(cmd)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
self.run_command("build")
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
self.distribution.run_command(command)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
self.distribution.run_command(command)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
File "/home/adam/.cache/uv/builds-v0/.tmp9wdE09/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
File "<string>", line 154, in run
File "<string>", line 168, in _find_mujoco
RuntimeError: MUJOCO_PATH environment variable is not set
hint: This usually indicates a problem with the package or the build environment.
Intro
Hi!
I am a postdoc at the University of Toronto and I use MuJoCo for my research on robotics.
My setup
What's happening? What did you expect?
When using a virtual environment with Python 3.9, running
pip install mujocofails with the output (note I'm actually usinguvhere) copied below. This happens because Mujoco versions 3.4 and 3.5 claim to support Python 3.9 in their pyproject.toml files, but do not provide Python 3.9 wheels on PyPI. Mujoco 3.3.7 appears to be the most recent version that actually provides Python 3.9 wheels. This is similar to #607, but for different versions.Ideally, wheels would be provided for the all the versions supporting Python 3.9 - is there a reason not to do so?
Steps for reproduction
pip install mujoco==3.4orpip install mujoco==3.5Minimal model for reproduction
Code required for reproduction
No response
Confirmations