Skip to content

Instantly share code, notes, and snippets.

@saratrajput
Created January 27, 2022 08:26
Show Gist options
  • Save saratrajput/60b1310fe9d9df664f9983b38b50d5da to your computer and use it in GitHub Desktop.
Save saratrajput/60b1310fe9d9df664f9983b38b50d5da to your computer and use it in GitHub Desktop.
Mujoco and Mujoco-py Installation Instructions

Mujoco and Mujoco-py Installation Instructions

The steps are taken from this video and document with some small changes.

Steps

  1. Install Anaconda. Download it from this link.
cd Downloads/
sudo chmod +x Anaconda3-2021.11-Linux-x86_64.sh
./Anaconda3-2021.11-Linux-x86_64.sh
  1. Install git.
sudo apt install git
  1. Install the Mujoco library.

    • Download the Mujoco library from this link.
    • Create a hidden folder :
    mkdir /home/username/.mujoco
    
    • Extract the library to the .mujoco folder.
    tar -xvf mujoco210-linux-x86_64.tar.gz -C ~/.mujoco/
    
    • Include these lines in .bashrc file.
    # Replace user-name with your username
    echo -e 'export LD_LIBRARY_PATH=/home/user-name/.mujoco/mujoco210/bin 
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia 
    export PATH="$LD_LIBRARY_PATH:$PATH" 
    export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so' >> ~/.bashrc
    
    • Source bashrc.
    source ~/.bashrc
    
    • Test that the library is installed.
    cd ~/.mujoco/mujoco210/bin
    ./simulate ../model/humanoid.xml
    
  2. Install mujoco-py.

conda create --name mujoco_py python=3.8
conda activate mujoco_py
sudo apt update
sudo apt-get install patchelf
sudo apt-get install python3-dev build-essential libssl-dev libffi-dev libxml2-dev  
sudo apt-get install libxslt1-dev zlib1g-dev libglew1.5 libglew-dev python3-pip

# Clone mujoco-py.
cd ~/.mujoco
git clone https://github.com/openai/mujoco-py
cd mujoco-py
pip install -r requirements.txt
pip install -r requirements.dev.txt
pip3 install -e . --no-cache
  1. Reboot your machine.
sudo reboot
  1. After reboot, run these commands to install additional packages.
conda activate mujoco_py
sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
# If you get an error like: "ln: failed to create symbolic link '/usr/lib/x86_64-linux-gnu/libGL.so': File exists", it's okay to proceed
pip3 install -U 'mujoco-py<2.2,>=2.1'
  1. Check if mujoco-py is properly installed.
cd ~/.mujoco/mujoco-py/examples
python3 setting_state.py
@Moj79a
Copy link

Moj79a commented Sep 8, 2024

hi. when I run this code getting the erorr . how can i fix it ?

(mujoco_py) moj79@moj79-Legion-5-15ITH6:~/.mujoco/mujoco-py/examples$ cd ~/.mujoco/mujoco-py/examples
python3 setting_state.py
Compiling /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx because it changed.
[1/1] Cythonizing /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx
performance hint: /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx:67:5: Exception check on 'c_warning_callback' will always require the GIL to be acquired.
Possible solutions:
1. Declare 'c_warning_callback' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on 'c_warning_callback' to allow an error code to be returned.
performance hint: /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx:104:5: Exception check on 'c_error_callback' will always require the GIL to be acquired.
Possible solutions:
1. Declare 'c_error_callback' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on 'c_error_callback' to allow an error code to be returned.

Error compiling Cython file:

...
See c_warning_callback, which is the C wrapper to the user defined function
'''
global py_warning_callback
global mju_user_warning
py_warning_callback = warn
mju_user_warning = c_warning_callback
^

/home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx:92:23: Cannot assign type 'void (const char ) except * nogil' to 'void ()(const char *) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to the type of 'c_warning_callback'.

Error compiling Cython file:

...
See c_warning_callback, which is the C wrapper to the user defined function
'''
global py_error_callback
global mju_user_error
py_error_callback = err_callback
mju_user_error = c_error_callback
^

/home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx:127:21: Cannot assign type 'void (const char ) except * nogil' to 'void ()(const char *) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to the type of 'c_error_callback'.
Traceback (most recent call last):
File "setting_state.py", line 7, in
from mujoco_py import load_model_from_xml, MjSim, MjViewer
File "/home/moj79/.mujoco/mujoco-py/mujoco_py/init.py", line 2, in
from mujoco_py.builder import cymj, ignore_mujoco_warnings, functions, MujocoException
File "/home/moj79/.mujoco/mujoco-py/mujoco_py/builder.py", line 504, in
cymj = load_cython_ext(mujoco_path)
File "/home/moj79/.mujoco/mujoco-py/mujoco_py/builder.py", line 110, in load_cython_ext
cext_so_path = builder.build()
File "/home/moj79/.mujoco/mujoco-py/mujoco_py/builder.py", line 226, in build
built_so_file_path = self._build_impl()
File "/home/moj79/.mujoco/mujoco-py/mujoco_py/builder.py", line 296, in _build_impl
so_file_path = super()._build_impl()
File "/home/moj79/.mujoco/mujoco-py/mujoco_py/builder.py", line 239, in _build_impl
dist.ext_modules = cythonize([self.extension])
File "/home/moj79/anaconda3/envs/mujoco_py/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize
cythonize_one(*args)
File "/home/moj79/anaconda3/envs/mujoco_py/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx

@patrick-amusivwa
Copy link

Cython.Compiler.Errors.CompileError: /

pip install "cython<3"

@omkarpatil18
Copy link

hi. when I run this code getting the erorr . how can i fix it ?

(mujoco_py) moj79@moj79-Legion-5-15ITH6:~/.mujoco/mujoco-py/examples$ cd ~/.mujoco/mujoco-py/examples python3 setting_state.py Compiling /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx because it changed. [1/1] Cythonizing /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx performance hint: /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx:67:5: Exception check on 'c_warning_callback' will always require the GIL to be acquired. Possible solutions: 1. Declare 'c_warning_callback' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions. 2. Use an 'int' return type on 'c_warning_callback' to allow an error code to be returned. performance hint: /home/moj79/.mujoco/mujoco-py/mujoco_py/cymj.pyx:104:5: Exception check on 'c_error_callback' will always require the GIL to be acquired. Possible solutions: 1. Declare 'c_error_callback' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions. 2. Use an 'int' return type on 'c_error_callback' to allow an error code to be returned.

Error compiling Cython file:

...

See c_warning_callback, which is the C wrapper to the user defined function

openai/mujoco-py#773 (comment)

@skr3178
Copy link

skr3178 commented Jun 12, 2025

It is not mentioned any where but critical. Installation of mujoco-py should be inside the ./mujoco folder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment