Installing Canopy 2 on Linux for classroom/lab use

For administrative and technical background, please see "Canopy 2 Managed Common Install".


Uninstall any existing EPD and Canopy installations on this system, including manually deleting all Canopy v1 System and User environment directories for each administrator and user.

Back up and then delete each user's Canopy configuration/preference directory, usually "~/.canopy". For more details about directory locations, see Uninstalling and resetting Canopy v2.


Canopy 2.1.9 (or later) standard installer for Linux from the Canopy download page. If you are a paid subscriber, and will not be able to update packages (because you are disconnected or because of administrative constraints), you may install the full installer instead, although otherwise this is not recommended. 

Canopy license file (<your_license_identification>.enlic), optionally provided to paid subscribers by Enthought support, to enable the Canopy debugger and Data Import Tool on systems where login does not work because there is no internet connection. Be sure that this downloaded file has at least read permissions for all intended users; the managed common install will copy it into the Canopy install directory; after this you may move or delete the downloaded license file if you wish. This license file is for use on disconnected systems. On systems where users log in, their individual licenses will automatically be installed for their use, during login.

Python Environment Bundle file, optionally provided when a uniform python environment with a specific set of packages or python version is required, for example for a course taught by Enthought. This will be a file with an extension .bundle or .zbundle.


1) Follow the first part of the "Linux Installation" instructions, but do not launch Canopy after installation. For specificity, the following steps will assume that you installed Canopy into "/opt/Canopy/". This places most of the Canopy GUI application in "/opt/Canopy/appdata/" (see "Directory Structure" below). Typically, you would give non-admin Canopy users read/execute access to these directories.

2) To the extent possible, temporarily disable any anti-virus software, or whitelist Canopy and Canopy Python. The next steps install tens of thousands of files and if they are all being scanned and verified in the cloud, the process will be very slow at best, and could possibly fail with a timeout.

3) Set up the managed common install, with the following command, adjusting file names and paths as appropriate:

/opt/Canopy/canopy_cli post-install-setup --managed-common-install /opt [--license-path /path/to/license/file.enlic

If you have a license file (see Download, above), substitute its filename and current location (typically a download dir) in the above command. If you don't, then omit that option.

4) If you are provided with a bundle file containing a python runtime and a number of packages, you can install this as an EDM python environment through the command line. The installation will require admin privileges. In the command below, adjust the path to Canopy based on your settings in step 3. and substitute a suitable name for your python environment for <ENV_NAME>.

cd /opt/Canopy
sudo ./canopy_cli edm mark-read-write
sudo ./canopy_cli edm envs import -f "/full/path/to/bundle-file.bundle" <ENV_NAME>
sudo ./canopy_cli edm mark-read-only

If you installed a python environment from a bundle file using the instructions shown above, you will also need to change the Canopy preferences to use the newly created python environment rather than the default python environment called User. To do so, open Canopy, select Preferences from the Edit menu, click the Python tab, scrool down to the "Python interpreter used by Canopy" section, uncheck the "Use Default Canopy Environment (User)" checkbox, then select the newly created python environment from the drop down menu. Finally restart Canopy.


5) You may find it convenient to create links in /opt/bin/, to executables /opt/Canopy/canopy and /opt/Canopy/canopy_cli

6) As long as you are not also installing a standalone Enthought Deployment Manager (EDM), you may wish to alias edm to canopy_cli edm.


Directory structure

The directory structure in this example, resulting from this installation, would be:

|- appdata/ # Canopy GUI application
|- edm/envs/User/ # Canopy User Python environment

Note: Specifying the Canopy application's installation target within a directory named Canopy/ (with an uppercase C) allows the overall Managed Common Install to be more compact, because Canopy's embedded edm root is always placed in a subdirectory named Canopy/edm.


  • Users may start the Canopy GUI application with:
  • From the GUI's Tool menu, they can open a Canopy Terminal window, running a shell where the GUI's active Python environment (by default, the environment named "User") is the default python.

  • Or they can spawn such a shell in a terminal, without first starting the GUI, with:
    /opt/Canopy/canopy_cli edm shell -e User
  • Or they can activate Canopy's "User" Python (make it the default python) in the current shell in a terminal, with:
    source /opt/Canopy/edm/envs/User/bin/activate
  • Or they can directly run Canopy's "User" Python with:


Update / maintain packages

To update packages in Canopy's active Python environment:

0) Ensure that no other users have this Canopy installation open.

1) Start Canopy with admin privileges.

2) From the Canopy Tools menu, open a Canopy Terminal window.

3) In this Canopy Terminal window, type:
edm mark-read-write

4) Keep this Canopy Terminal window open.

5) Update packages in one of two ways:

  • From the Canopy Tools menu or Welcome screen, open the Canopy Package Manager, and use it to update packages.
  • Or, in the Canopy Terminal window, use the edm command-line utility to update packages. See "Managing packages from the command line using EDM", in the Canopy documentation. 

6) In the Canopy Terminal windows, type:
edm mark-read-only

7) Close the Canopy Terminal window.


Please do not enter support requests in article comments

Please use article comments for suggestions to improve the article. See "How to submit Enthought Canopy/EPD support requests".

Have more questions? Submit a request


Powered by Zendesk