Choose languages for your environment

You can define many different languages in your configuration files. This page describes how to use some of the more common ones.

Python

Your environment will have Python (and specified dependencies) installed when you use one of the following configuration files:

  • requirements.txt
  • environment.yml

Note that by default, the environment will have Python 3 installed.

Specifying a version of Python

To specify a specific version of Python, you have two options:

  • Use runtime.txt. Include a line that specifies the Python version in this file. This line takes the following form:

    python=X.X
    

    For example,:

    python=2.7
    
  • Use environment.yml. The Anaconda distribution also lets you define the Python environment within environment.yml. To do so, add python=X.X to your dependencies section, like so:

    name: python 2.7
    dependencies:
      - python=2.7
      - numpy
    

The R Language

To ensure that R is installed, you must specify a version of R in a runtime.txt file. This takes the following form:

r-YYYY-MM-DD

The date corresponds to the state of the MRAN repository at this day. Make sure that you choose a day with the desired version of your packages. For example, to use the MRAN repository on January 1st, 2018, add this line to runtime.txt:

r-2018-01-01

Note that to install specific packages with the R environment, you should use the install.R configuration file.

Julia

To build an environment with Julia, include a configuration file called REQUIRE. Each line of this file should include a package that you wish to have installed with Julia. For example, the following contents of REQURE would install the PyPlot package with your Julia environment.:

PyPlot

Languages not covered here

If a language is not “officially” supported by a build pack, it can often be installed with a postBuild script. This will run arbitrary bash commands, and can be used to download / install a language.

Using multiple languages at once

It may also be possible to combine multiple languages in a single environment. The details on how to accomplish this with all possible combinations are outside the scope of this guide. However we recommend that you take a look at the Multi-Language Demo repository for some inspiration.