Improve source installation of python bindings.

Add support for conda environments.
Add step by step instructions in the README.
This commit is contained in:
Kevin Zakka
2022-03-26 18:31:45 -07:00
parent 21338e6178
commit 95350ce482
3 changed files with 45 additions and 10 deletions
+43 -8
View File
@@ -18,6 +18,8 @@ most users who access MuJoCo through Python. For example, the `egl`, `glfw`, and
## Installation
### PyPI
The package can be installed from [PyPI](https://pypi.org/project/mujoco/) via
```sh
@@ -27,15 +29,48 @@ 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.
If you wish to modify and build the bindings from source, you should clone the
entire `mujoco` repository from GitHub, then run the `make_sdist.sh` script to
generate a [source distribution](https://packaging.python.org/en/latest/glossary/#term-Source-Distribution-or-sdist)
tarball, then run `pip wheel name_of_sdist.tar.gz`. The `make_sdist.sh` script
generates additional C++ header files that are needed to build the bindings,
and also pulls in required files from elsewhere in the repository outside the
`python` directory into the sdist.
### Source
CMake and a C++17 compiler are needed to build the bindings from source.
**Note.** CMake and a C++17 compiler are needed to build the bindings from source.
1. Download the [latest release](https://github.com/deepmind/mujoco/releases) from GitHub. On macOS, the download corresponds to a DMG file from which you can drag the `MuJoCo` app into your Applications folder.
<p align="center">
<img src="../assets/macos_install.png" width=600>
</p>
2. Clone the entire mujoco repository from Github and cd into the python directory.
```bash
git clone https://github.com/deepmind/mujoco.git
cd mujoco/python
```
3. Create a virtual environment, for example with conda.
```bash
conda create -n mujoco python=3.8
conda activate mujoco
```
4. Generate a [source distribution](https://packaging.python.org/en/latest/glossary/#term-Source-Distribution-or-sdist)
tarball with the `make_sdist.sh` script.
```bash
cd python
bash make_sdist.sh
```
The `make_sdist.sh` script generates additional C++ header files that are needed to build the bindings, and also pulls in required files from elsewhere in the repository outside the `python` directory into the sdist. Upon completion, the script will create a `dist` directory with a `mujoco-2.1.X.tar.gz` file (where X is the version number of the release).
5. Install the generated tarball. You'll need to specify the path to the MuJoCo library you downloaded earlier. For example, on macOS, this will be `/Applications/MuJoCo.app/Contents/Frameworks/MuJoCo.framework` if you dragged it to your Applications folder.
```bash
cd dist
MUJOCO_PATH=/PATH/TO/MUJOCO pip install mujoco-2.1.X.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
+2 -2
View File
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
if [[ -z ${VIRTUAL_ENV} ]]; then
if [[ -z ${VIRTUAL_ENV} ]] && [[ -z ${CONDA_DEFAULT_ENV} ]] ; then
echo "This script must be run from within a Python virtual environment"
exit 1
fi
@@ -28,7 +28,7 @@ else
readonly tmp_dir="$(mktemp -d)"
fi
python -m pip install --upgrade pip
python -m pip install --upgrade pip setuptools wheel
python -m pip install absl-py
pushd ${tmp_dir}
cp -r "${package_dir}"/* .