## Installation

### Quick Installation
You can install Rasa Open Source using pip (requires Python 3.6 or 3.7).

```
$ pip3 install rasa
```

- Having trouble installing? Read our [step-by-step installation guide](https://legacy-docs-v1.rasa.com/1.10.19/user-guide/installation/#installation-guide).
- You can also [build Rasa Open Source from source](https://legacy-docs-v1.rasa.com/1.10.19/user-guide/installation/#build-from-source).
- For advanced installation options such as building from source and installation instructions for custom pipelines, head over [here](https://legacy-docs-v1.rasa.com/1.10.19/user-guide/installation/#pipeline-dependencies).

### Step-by-step Installation Guide

#### 1. Install the Python development environment
Check if your Python environment is already configured:

```
$ python3 --version
$ pip3 --version
```

If these packages are already installed, these commands should display version numbers for each step, and you can skip to the next step.

#### 2. Create a virtual environment (strongly recommended)
Tools like [virtualenv](https://virtualenv.pypa.io/en/latest/) and [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/) provide isolated Python environments, which are cleaner than installing packages systemwide (as they prevent dependency conflicts). They also let you install packages without root privileges.

#### 3. Install Rasa Open Source
**Congratulations! You have successfully installed Rasa Open Source!**

### Building from Source
If you want to use the development version of Rasa Open Source, you can get it from GitHub:

```
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
$ git clone https://github.com/RasaHQ/rasa.git
$ cd rasa
$ poetry install
```

### NLU Pipeline Dependencies
Several NLU components have additional dependencies that need to be installed separately.

#### How do I choose a pipeline?
The page on [Choosing a Pipeline](https://legacy-docs-v1.rasa.com/1.10.19/nlu/choosing-a-pipeline/#choosing-a-pipeline) will help you pick the right pipeline for your assistant.

#### I have decided on a pipeline. How do I install the dependencies for it?
When you install Rasa Open Source, the dependencies for the `supervised_embeddings` - TensorFlow and sklearn_crfsuite get automatically installed. However, spaCy and MITIE need to be separately installed if you want to use pipelines containing components from those libraries.

If you don’t mind the additional dependencies lying around, you can use this to install everything:

```
$ poetry install --extras full
```

#### Dependencies for spaCy
For more information on spaCy, check out the [spaCy docs](https://spacy.io/usage/models).
You can install it with the following commands:

```
$ pip install rasa[spacy]
$ python -m spacy download en_core_web_md
$ python -m spacy link en_core_web_md en
```

#### Dependencies for MITIE
First, run

```
$ pip install git+https://github.com/mit-nlp/MITIE.git
$ pip install rasa[mitie]
```

and then download the [MITIE models](https://github.com/mit-nlp/MITIE/releases/download/v0.4/MITIE-models-v0.2.tar.bz2). The file you need is `total_word_feature_extractor.dat`. Save this anywhere. If you want to use MITIE, you need to tell it where to find this file (in this example it was saved in the data folder of the project directory).
