---
title: Install the Qiskit SDK from source
description: Learn how to install the development version of Qiskit.
source: https://quantum.cloud.ibm.com/docs/en/guides/install-qiskit-source
---

# Install the Qiskit SDK from source

When you install the Qiskit SDK from source, you can access the current development version, instead of using the version in the Python Package Index (PyPI) repository. You can therefore inspect and extend the latest version of the Qiskit code more efficiently.

## Create and activate a new virtual environment

1. Navigate to your project directory and create a minimal environment with only Python installed in it.

   ### macOS

   ```shell
   python3 -m venv .venv
   ```

   ### Linux

   ```shell
   python3 -m venv .venv
   ```

   ### Windows

   ```text
   python -m venv .venv
   ```

2. Activate your new environment.

   ### macOS

   ```shell
   source .venv/bin/activate
   ```

   ### Linux

   ```shell
   source .venv/bin/activate
   ```

   ### Windows

   ```text
   .venv\Scripts\Activate.ps1
   ```

## Install the Rust compiler

A Rust compiler must be installed on your system to compile Qiskit. To install the Rust compiler, use the cross-platform Rust installer [`rustup`](https://rustup.rs/) or [another install method](https://forge.rust-lang.org/infra/other-installation-methods.html).

## Install Qiskit

Follow these steps to install Qiskit:

1. Clone the Qiskit repository.

```bash
git clone https://github.com/Qiskit/qiskit.git
```

2. Change to the `qiskit` directory.

```bash
cd qiskit
```

3. (Optional) If you want to run tests or linting checks, install the developer requirements.

```bash
pip install -r requirements-dev.txt
```

4. Install `qiskit`.

- **Standard install**:

  ```bash
  pip install .
  ```

- **Editable mode**: In this mode, you don't need to reinstall Qiskit when there are code changes to the project.

  ```bash
  pip install -e .
  ```

  In editable mode, the compiled extensions are built in *debug mode* without optimizations. This affects the runtime performance of the compiled code. To build the compiled extensions with optimizations enabled, run the following command to rebuild the binary in *release mode*:

  ```bash
  python setup.py build_rust --release --inplace
  ```

  > **Note**
  >
  > If you are working on Rust code in Qiskit, you need to rebuild the extension code every time you make a local change. In editable mode, the Rust extension is only built when the install command is run, so local changes you make to the Rust code are not reflected in the installed package unless you rebuild the extension by rerunning `build_rust` (with or without `--release`, depending on whether you want to build in release or debug mode).

## Next steps

> **Recommendations**
>
> - Read the [contributing guidelines](https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md) to contribute to the open-source Qiskit SDK.
> - [Run your first quantum circuit](/docs/guides/quick-start).
> - Try a tutorial, such as [Grover's algorithm](/docs/tutorials/grovers-algorithm).
