> ## Documentation Index
> Fetch the complete documentation index at: https://docs.expectedparrot.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> EDSL is an open-source Python library. It is compatible with Python 3.9 - 3.13 and available at [PyPI](https://pypi.org/project/edsl/) and [GitHub](https://github.com/expectedparrot/edsl).

<Note>
  **Note**

  EDSL is in development. We recommend that you continually check for and install the latest version of EDSL to access the most recent features and bug fixes.
</Note>

## Prerequisites

Please ensure that Python is installed on your system before you install EDSL. You can download Python from the [official website](https://www.python.org/downloads/).

You can use [pip](https://pip.pypa.io/en/stable/installation/) to install EDSL on your system (a package installer for Python).

## Quickstart Installation

Check whether EDSL is already installed:

```bash theme={null}
pip show edsl
```

If installed, you will see the version number in the output. If not installed, run either of the following:

```bash theme={null}
pip install edsl
```

Or:

```bash theme={null}
! uv pip install edsl -q
```

Then get your API key from Expected Parrot and import dependencies:

```python theme={null}
from edsl import login

login()
```

This will prompt you to log into your Expected Parrot account and automatically retrieve your API key. See the [Managing Keys](/en/latest/api_keys) section for more details on managing your API keys for language models.

## Installing from source

If you want to install EDSL from source, you can clone the repository from GitHub:

```bash theme={null}
pip install git+https://github.com/expectedparrot/edsl.git@main
```

This gives you the latest development changes ahead of PyPI releases.

## Updating your version

To confirm that your version is up to date, compare your version number with the latest version on the [EDSL PyPI page](https://pypi.org/project/edsl/).

To update your EDSL version to the latest one:

```bash theme={null}
pip install --upgrade edsl
```

## Advanced installation

The steps above install EDSL globally. To avoid library conflicts, use a virtual environment.

To create a virtual environment, open your terminal and run the following command:

```bash theme={null}
python -m venv myenv
```

This will create a folder called myenv. Next, activate your virtual environment:

```bash theme={null}
source myenv/bin/activate
```

You can now install EDSL through pip within your virtual environment:

```bash theme={null}
pip install edsl
```

Or:

```bash theme={null}
! uv pip install edsl -q
```

You will have access to EDSL while your virtual environment is activated.

You can deactivate the virtual environment at any time by running:

```bash theme={null}
deactivate
```

To delete the virtual environment, simply delete the myenv folder.
