PiperOrigin-RevId: 472698116 Change-Id: I0afc29468555339e0a2cac27977bd68246e483f3
MuJoCo Python Bindings
This package is the canonical Python bindings for the MuJoCo physics engine. These bindings are developed and maintained by DeepMind, and is kept up-to-date with the latest developments in MuJoCo itself.
The mujoco package provides direct access to raw MuJoCo C API functions,
structs, constants, and enumerations. Structs are provided as Python classes,
with Pythonic initialization and deletion semantics.
It is not the aim of this package to provide fully fledged
scene/environment/game authoring API, as there are already a number of existing
packages that do this well. However, this package does provide a number of
lower-level components outside of MuJoCo itself that are likely to be useful to
most users who access MuJoCo through Python. For example, the egl, glfw, and
osmesa subpackages contain utilities for setting up OpenGL rendering contexts.
Installation
PyPI (Recommended)
The recommended way to install this package is via PyPI:
pip install mujoco
A copy of the MuJoCo library is provided as part of the package and does not need to be downloaded or installed separately.
Source
IMPORTANT: Building from source is only necessary if you are modifying the Python bindings (or are trying to run on exceptionally old Linux systems). If that's not the case, then we recommend installing the prebuilt binaries from PyPI.
-
Make sure you have CMake and a C++17 compiler installed.
-
Download the latest binary release from GitHub. On macOS, the download corresponds to a DMG file from which you can drag
MuJoCo.appinto your/Applicationsfolder. -
Clone the entire
mujocorepository from GitHub andcdinto the python directory.git clone https://github.com/deepmind/mujoco.git cd mujoco/python -
Create a virtual environment:
python3 -m venv /tmp/mujoco source /tmp/mujoco/bin/activate -
Generate a source distribution tarball with the
make_sdist.shscript.cd python bash make_sdist.shThe
make_sdist.shscript generates additional C++ header files that are needed to build the bindings, and also pulls in required files from elsewhere in the repository outside thepythondirectory into the sdist. Upon completion, the script will create adistdirectory with amujoco-x.y.z.tar.gzfile (wherex.y.zis the version number). -
Use the generated source distribution to build and install the bindings. You'll need to specify the path to the MuJoCo library you downloaded earlier in the
MUJOCO_PATHenvironment variable.Note: For macOS, this can be the path to a directory that contains the
mujoco.framework. In particular, you can setMUJOCO_PATH=/Applications/MuJoCo.appif you installed MuJoCo as suggested in step 1.cd dist MUJOCO_PATH=/PATH/TO/MUJOCO pip install mujoco-x.y.z.tar.gz
The Python bindings should now be installed! To check that they've been
successfully installed, cd outside of the mujoco directory and run
python -c "import mujoco".
Usage
Once installed, the package can be imported via import mujoco. Please consult
our documentation for
further detail on the package's API.
Versioning
The major.minor.micro portion of the version number matches the version of
MuJoCo that the bindings provide. Optionally, if we release updates to the
Python bindings themselves that target the same version of MuJoCo, a .postN
suffix is added, for example 2.1.2.post2 represents the second update to the
bindings for MuJoCo 2.1.2.
License and Disclaimer
Copyright 2022 DeepMind Technologies Limited
MuJoCo and its Python bindings are licensed under the Apache License, Version 2.0. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0.
This is not an officially supported Google product.