Follow

How can I install packages or dependencies?

Domino is pre-installed with many common libraries, so we recommend that you first try running your code before doing the customizing your configuration. If you need to, there are specific ways to add your own dependencies for...

If you have more specialized dependencies, please let us know.

Persistent installations

By default, Domino runs each of your scripts (or interactive sessions) from a fresh environment. I.e., any packages you install will install each time. We have more advanced functionality for managing your own compute environments with software changes that stay permanently installed. Learn more about custom environments.


Python

Checking what's already installed

Many common modules are installed by default. To get a list of pre-installed modules, you can include help('modules') at the start of your script or in a new IPython Notebook session. Or using the Domino CLI tool, you can run domino run --direct "pip freeze"

Adding your own packages 

To specify your own additional dependencies, you can use pip with Domino. To specify module dependencies for your project, add a pip requirements file named requirements.txt to the root of your project folder.

The requirements file specifies which libraries and any version requirements for them. An example:

pandas
lxml==3.2.3
numpy>=1.7.1

For a full reference on the syntax of the requirements file, read this.

If you're using pip on your local machine, the easiest way to generate the requirements.txt file is to run the following command in the root of your project folder:

~/domino/myProject $ pip freeze > requirements.txt

For performance reasons, you should prune that file so that it includes only the libraries you need for your actual analysis.

Alternatively, if you're working in a Jupyter Notebook, you can also use pip to install dependencies interactively. In a notebook cell, you can run

! pip install --user <package>

(The '!' tells the notebook to execute the cell as a shell command)

Installing Packages Hosted from a Git Repository

Warning: this is an advanced topic!

Pip can install Python packages from source by cloning a Git repository. For full reference, see here. To specify this, you will need to add something like the following line to your requirements.txt file:

-e git+https://git.yourproject.org/you/Project.git#egg=YourProject

The most common host of Git projects is GitHub. If the package you wish to install is publicly accessible, then the instructions above will work. However, if you need to install any private repositories, Domino can securely integrate with GitHub to access those private repositories. Read our instructions on securely storing your Github credentials.

Do not embed your GitHub credentials directly in the requirements.txt file. Instead, integrate Domino with GitHub securely by following our instructions here.

R

If you're using Domino for R scripts, you may also want to read our R Tips, and check out our R Package for controlling Domino in your R IDE.

Most common packages are installed by default (you can include installed.packages() at the start of your script to print out a list of installed packages). If you need additional packages, you can use R's built-in package manager to install and load them: simply add install.packages calls for any packages your code needs to the top of your R scripts, e.g.,

install.packages("rpart", dependencies=TRUE, repos='http://cran.us.r-project.org')
# install other packages...

library('rpart')

# rest of your script...

These package installation calls must be at the top of every R script that Domino runs. If your packages take a long time to install, please see our article on installing R packages once instead of each time your code runs.

We recommend putting all the package installation calls into a separate file called install.r in the root of your project folder, and then sourcing that script at the top of all your main R scripts:

install.r
install.packages("rpart", dependencies=TRUE, repos='http://cran.us.r-project.org')
# install other packages...
main.r
source('install.r')
library('rpart')

# rest of your script

Octave

Octave has a pkg command that lets you install and load packages. Some Matlab toolboxes have good equivalents in Octave, though many do not. Check out Octave Forge for a list of Octave packages, along with documentation.

Here's some sample code you can include at the start of your script, to load the image package

% only run this code if we're in Octave, not if we're in Matlab
if exist('OCTAVE_VERSION') ~= 0
    pkg install -forge specfun
    pkg install -forge control
    pkg install -forge general

    % depends on specfun, control, general
    pkg install -forge signal

    % depends on signal
    pkg install -forge image

    pkg load image
end

Note that we have to manually install the image package's dependencies.

Was this article helpful?
0 out of 0 found this helpful

Comments