Installation#

The following instructions assume that you have either conda or uv installed. If you don’t please check their installation instructions (for conda, for uv).

Create and activate a virtual environment#

To avoid dependency conflicts with other packages, it is best practice to install Python packages within a virtual environment. We recommend using conda or uv to create and manage this environment, as they simplify the installation process.

Create and activate a new conda environment:

# Create conda environment
conda create -y -n ethology-env -c conda-forge python=3.13

# Activate it
conda activate ethology-env

We used ethology-env as the environment name, but you can choose any name you prefer.

Create and activate a new virtual environment inside your project directory:

# Create virtual environment
uv venv --python=3.13

# On macOS and Linux, activate it with:
source .venv/bin/activate

# On Windows PowerShell, activate it with:
.venv\Scripts\activate

Install the package#

With your environment activated, install ethology using one of the methods below.

Install the core package:

pip install ethology

Install the core package:

uv pip install ethology

For developers

If you would like to contribute to ethology, see our contributing guide for detailed developer setup instructions and coding guidelines.

Update the package#

Always update using the same package manager used for installation (either via pip or via uv).

To update to the latest version of ethology:

pip install -U ethology
uv pip install -U ethology

If the above fails, try installing ethology in a fresh new environment. To do this, first remove the existing environment:

conda env remove -n ethology-env

Delete the .venv folder in your project directory.

# On macOS and Linux, run:
rm -rf .venv

# On Windows PowerShell, run:
rmdir /s /q .venv

Optionally, you can clean the uv cache for unused packages:

uv cache prune

Then you can create a new environment following the instructions above.

Tip

You can list all conda environments before and after the above command to verify removal:

conda env list