Skip to main content

Project Malmo is a platform for Artificial Intelligence experimentation and research built on top of Minecraft

Project description

# Pip installable package for Malmo #

Malmo can be built from source ([Instructions for building from source](https://github.com/Microsoft/malmo/tree/master/doc))
or easily installed from the pre-build version
([Install from pre-built version](https://github.com/Microsoft/malmo/releases)).
However, it is often even simpler and sufficient to install Malmo as a python native platform wheel for Windows, MacOS or Linux.

## Prerequisites ##

In order to `pip3 install malmo` there are some environment and OS dependency requirements that have to be met:

1. Java 8 must be installed and the JAVA_HOME environment variable set up for Java8.
2. [git](https://git-scm.com/) should be installed and on your shell search path.
3. MALMO_XSD_PATH must be set to where the XSD schema files are located (more on this below).
4. There are a few OS specific dependencies that must be pre-installed.

* For [Ubuntu Linux](https://github.com/Microsoft/malmo/blob/package/doc/install_linux.md) these are follows:
`python3-pip ffmpeg openjdk-8-jdk git`,
We'll add more Linux flavours here soon but meanwhile the docker build scripts are a good place to start.

* Windows - please use the [Powershell scripts](https://github.com/Microsoft/malmo/blob/package/doc/install_windows.md) to install dependencies.
(The dependencies are python3, ffmpeg, 7zip, Java8 and git.)

* MacOSX - please see [MacOSX](https://github.com/Microsoft/malmo/blob/master/doc/install_macosx.md).

If you are unsure of what to pre-install for your Linux flavour,
the Malmo docker build files might be a good place to start
([Docker build files](https://github.com/Microsoft/malmo/tree/master/scripts/docker)).

## Using the prebuilt Docker image ##

Rather than installing these dependencies manually it's simper to use docker to launch a docker container using our prebuilt docker image.

Our docker image already has the Malmo Python package installed, as well as the source code and Minecraft
(and the dependencies of course), along with a Jupyter server so can start coding right away!

The docker container will launch the Malmo Minecraft Mod and a Jupyter server on start up,
and is set up to allow remote access via the
[VNC remote desktop display protocol](https://en.wikipedia.org/wiki/Virtual_Network_Computing)
so that you are able to see the Minecraft game running inside the container.

```
docker run -it -p 5901:5901 -p 6901:6901 -p8888:8888 -e VNC_PW=vncpassword andkram/malmo_0_35_5
```

You can add a `-v drive:/somedir:/somedir` option to the above docker run command to mount a directory
for sharing your coding project files. You should also select a different hard to guess password.

To access the container browse to `http://localhost:6901/?password=vncpassword` (or connect to port 5901 using a VNC client).

Once Minecraft is completely launched in the container (which can take some minutes the first time the container is run)
you should see it in the VNC desktop in your open browser tab.

After launching Minecraft, a Jupiter server is also started up and a connection advise hint is written on the docker container's output.
Please follow the advice to cut & paste the url into another browser tab but substituting `localhost` for `0.0.0.0` or address URL part
(as we are bridging port 8888 to the docker container).

The output looks something like this:

```
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://0.0.0.0:8888/?token=1c6390221431ca75146946c52e253f063431b6488420bbac
```
(Here you should have used: `http://localhost:8888/?token=1c6390221431ca75146946c52e253f063431b6488420bbac`for Jupyter.)

To run a sample mission in Jupyter, create a python3 notebook and enter `from malmo.run_mission import run; run()` and execute the notebook.

## Install using pip locally ##

If you would rather install Malmo locally without docker you can do that
(after satisfying the OS & environment variable requirements above) using:

```
pip3 install malmo
```

Create or change into a working directory where you would like Malmo to be installed (in a sub directory named MalmoPlatform) and do:

```
python3 -c 'import malmo.minecraftbootstrap; malmo.minecraftbootstrap.download()'
```

This command will create a new directory (called MalmoPlatform) containing the Malmo GitHub project in your (current) working directory. By default, the master branch is downloaded. You can specify a branch using a string keyword argument (named branch) to the download function - which can be necessary if the malmo package was not installed recently and the download is for some reason done again.

Please remember to set up the MALMO_XSD_PATH environment variable to point to the MalmoPlatform/Schemas directory.
i.e. full path of working dir and MalmoPlatform/Schema.

Alternatively, you could set it in Python temporarily with a `malmo.minecraftbootstrap.set_malmo_xsd_path();` statement after the
`import malmo.minecraftbootstrap;` module import in the python command below.

You can now launch Minecraft from your working directory:

```
python3 -c 'import malmo.minecraftbootstrap; malmo.minecraftbootstrap.launch_minecraft()'
```

This may take some time (minutes if it's the first run as it needs to build Minecraft Forge).

The malmo package includes a simple test mission which you can run as follows:

```
python3 -c 'from malmo.run_mission import run; run()'
```

(Again, add a `malmo.minecraftbootstrap.set_malmo_xsd_path()` statement if you have not set up the MALMO_XSD_PATH.)

You can also run the mission from Jupyter. Simply create a Python3 notebook and
add `from malmo.run_mission import run; run()` to the notebook and execute it.

To start coding you could try `import malmo; help(malmo)`.
The MalmoPython sub-module (`import malmo.MalmoPython`) is the native library used by all the Malmo Python examples.

If you wish to run old Malmo examples against the pip "malmo" module without editing imports
then you may want to copy in MalmoPython.py and malmoutil.py from the
[pip package backwards compatibility directory](https://github.com/Microsoft/malmo/tree/package/scripts/python-wheel/backwards-compatible-imports) or include them on your PYTHONPATH.

To de-install delete the MalmoPlatform directory (and it's contents) and do a `pip3 uninstall malmo`.



Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

malmo-0.35.6.0-cp37-cp37m-macosx_10_13_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.7m macOS 10.13+ x86-64

malmo-0.35.6.0-cp36-cp36m-win_amd64.whl (722.7 kB view details)

Uploaded CPython 3.6m Windows x86-64

malmo-0.35.6.0-cp36-cp36m-macosx_10_13_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.6m macOS 10.13+ x86-64

malmo-0.35.6.0-cp35-cp35m-manylinux1_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.5m

File details

Details for the file malmo-0.35.6.0-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for malmo-0.35.6.0-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 770d36eb594f3deeccdb449bbe5144371bb5102d4f0cb8ba55a3396431d45d0f
MD5 8402f9729ea391be713185c5f8d53c46
BLAKE2b-256 3c3a503e8741ec0b4e9814f45303f7ff898ebfdb1aca3b6e23bb1b17e6db5f13

See more details on using hashes here.

File details

Details for the file malmo-0.35.6.0-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for malmo-0.35.6.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ac91cab550b5afd320f971882f56416ca9db50bfdd8a637dbb57753301e8b94b
MD5 da2ab8b8b645e8a00612f25bf9e58101
BLAKE2b-256 ea26419d72a8da955144a2acb4a6f5ce55182006c3d6b07bc7920868cd07fa07

See more details on using hashes here.

File details

Details for the file malmo-0.35.6.0-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for malmo-0.35.6.0-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1c0b683472e1d0319742bee5e3ff3ae8c3c3dd0e7a74303481d23606bcc08ecd
MD5 5cb943db1395dfc6d7128ca71c30437e
BLAKE2b-256 752465a6ac73bcfec41ed559548c026a95a20116d5b649b18db1c8f02eeb3b9e

See more details on using hashes here.

File details

Details for the file malmo-0.35.6.0-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for malmo-0.35.6.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c802c5bc499bda0e198ac620b416a6ca80261da41270ee46d74e2252a0bf65d4
MD5 b69d97960906b09d367bcd9b2fb05b91
BLAKE2b-256 84d05822c6f76ac33f2d66a3b611f50a8684457d0f8041efd798cab91ae3b77a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page