---
title: "Installation in Python virtual environment"
description: "How to install Home Assistant in a Python virtual environment."
redirect_from: /getting-started/installation-virtualenv/
---
If you already have Python 3.7 or later installed, you can easily give Home Assistant a spin.
It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.7/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems.
This is a generic guide for running Home Assistant under Python. We recommend to use [our recommended installation guides](/docs/installation/#recommended). The steps below may be shorter but some users find difficulty when applying updates and may run into issues.
Before you begin the guide below, ensure that you have a *so-called standard* build environment that includes things like `make`, `gcc`, `python3`, including Python 3 `setuptools` and `pip` modules. Less obvious is the need to install `openssl-dev` (for opensslv.h) and `libffi-dev` (for cffi.h) for things to build later on.
{% comment %}
This page describes installation instructions for a pure Python installation.
It should not contain any OS specific instructions.
{% endcomment %}
### Install
1. Create a virtual environment in your current directory:
```bash
python3 -m venv homeassistant
```
2. Open the virtual environment:
```bash
cd homeassistant
```
3. Activate the virtual environment:
```bash
source bin/activate
```
4. Install Home Assistant:
```bash
python3 -m pip install homeassistant
```
5. Run Home Assistant:
```bash
hass --open-ui
```
6. You can now reach the web interface on `http://ipaddress:8123/` - the first start may take a couple of minutes before the web interface is available. This can take longer if you're using lower-end hardware like a Raspberry Pi Zero.
### Upgrade
1. Stop Home Assistant
2. Open the directory where the virtual environment is located, activate the virtual environment, then upgrade Home Assistant:
```bash
cd homeassistant
source bin/activate
python3 -m pip install --upgrade homeassistant
```
3. Start Home Assistant
4. You can now reach the web interface on `http://ipaddress:8123/` - the first start may take some time before the web interface is available, depending on how many integrations need to be upgraded.
### Run a specific version
In the event that a Home Assistant version doesn't play well with your hardware setup, you can downgrade to a previous release. For example:
```bash
cd homeassistant
source bin/activate
pip3 install homeassistant==0.XX.X
```
#### Run the beta version
If you would like to test next release before anyone else, you can install the beta version, for example:
```bash
cd homeassistant
source bin/activate
pip3 install --pre --upgrade homeassistant
```
#### Run the development version
If you want to stay on the bleeding-edge Home Assistant development branch, you can upgrade to `dev`.
The "dev" branch is likely to be unstable. Potential consequences include loss of data and instance corruption.
For example:
```bash
cd homeassistant
source bin/activate
pip3 install --upgrade git+git://github.com/home-assistant/home-assistant.git@dev
```
### Notes
- In the future, if you want to start Home Assistant manually again, follow step 2, 3 and 5.
- It's recommended to run Home Assistant as a dedicated user.
Looking for more advanced guides? Check our [Raspberry Pi OS guide](/docs/installation/raspberry-pi/) or the [other installation guides](/docs/installation/).
### After upgrading Python
If you've upgraded Python (for example, you were running 3.7.1 and now you've installed 3.7.3) then you'll need to build a new virtual environment. Simply rename your existing virtual environment directory:
```bash
mv homeassistant homeassistant.old
```
Then follow the [Install](#install) steps again, being sure to use the newly installed version of Python.