Emily CLI Documentation
Release-v3.0.6Emily combines the powers of Python and Docker to build stable and consistent machine learning and datascience python environments. Emily is useful for large cross-team project development as well as for simply running a single jupyter notebook or python script.
Downloademily@v3.0.6See earlier versions
$ emily open [project] [options]Open a directory or an existing Emily project by its name or ID.
$ emily open my-project-nameEmily: Opening project my-project-name located at/my-project/ny-project.Emily: Starting Docker container... (this may take a while on firststartup)Emily Open
The emily open command is used to open your projects to develop them.
To open a project, simply run emily open inside a terminal, following by a project identifier, which can be:
- The project name
- The project path
- The project id (can be partial as long as it's uniquely identifiable)
$ emily open my-project-name$ emily open ~/dev/emily-projects/my-project-name$ emily open MKLHWX--editor vscodeOpening with editors
Emily supports opening projects with a small set of code editors:
- VS Code
- PyCharm Professional
- Jupyter Notebook
- Jupyter Lab
Because Emily projects are developed inside the Docker container that will later be deployed, the set of editors is limited as in-container development requires a substantial amount of editor-specific setup.
When first opening a project, Emily will prompt you for your preferred editor.
You can also specify the editor explicitly with the --editor flag:
$ emily open <my-project>--editor vscodeChanging environments and configurations
By default, Emily will open your project in the dev environment using the dev configuration.
This environment and configuration are automatically created when building a project.
To change the environment or configuration (for example, if you want to open your project in a production setting), simply provide the
--environment and --configuration flags:
$ emily open <my-project>--environment prod--configuration nginxImporting projects
The emily open command can also be used to import existing projects.
The imported project doesn't have to be an Emily project.
Importing an Emily project
If you have a locally stored Emily project that Emily doesn't know about yet (e.g. a project from a colleague), simply run:
$ emily open ./my-colleague/their-projectYou can use the --import-only flag to prevent opening the imported project. This is equivalent to emily build --no-autostart.
If the Emily project specifies mount mappings, you will be prompted for registering your own local mount mappings.
To avoid this prompt, provide the mappings with the --import-mounts flag. Note that the mappings must follow the format
of <source>:<target>, e.g.:
$ emily open ./my-colleague/their-project--import-mounts ./data/training:/workspace/training-dataImporting a non-Emily project
To import a non-Emily project, simply run the same emily open command as you would with Emily projects.
For non-Emily projects, you will need to provide the image to use for this project.
You will be prompted to provide this unless an image is explicitly provided by the --import-image flag.
$ emily open ./my-colleague/their-project--import-image slimOpening a Jupyter Notebook
Emily also supports directly opening a Jupyter .ipynb file.
When opening notebooks, Emily will wrap the file in a similarly named directory which will be configured as a basic Emily project.
Unless provided explicitly with --import-image, you will be prompted to supply a Docker image to use for this notebook.
During opening, Emily will automatically start the Jupyter server so you're immediately ready to run and edit the notebook.
$ emily open ./my-notebook.ipynb--import-image slim