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

# Installation

> A Python library and CLI tool for Software Composition Analysis. Scan your codebase for open-source components, dependencies, and licence compliance.

[scanoss.py](https://github.com/scanoss/scanoss.py) provides a Python library and command-line interface for interacting with SCANOSS APIs and engines.

## Prerequisites

Before you begin, ensure you have:

* [Python 3.9 or higher](https://www.python.org/)

## Installation

### Standard Installation

Install `scanoss-py` from [PyPI](https://pypi.org/project/scanoss/):

```bash theme={null}
# Install from PyPI
pip3 install scanoss

# Upgrade an existing installation
pip3 install --upgrade scanoss
```

### Fast Winnowing

Fast winnowing is an optional extension that provides a significant performance improvement in fingerprinting.
Install it separately if you require faster scanning throughput:

```bash theme={null}
# Install fast winnowing support
pip3 install scanoss_winnowing
```

To verify that fast winnowing is active:

```bash theme={null}
scanoss-py utils fast
```

### Dependency Scanning

To enable **dependency scanning** from package manifests and lockfiles (such as `package.json`, `requirements.txt`, and `pom.xml`), install `scancode-toolkit`:

```bash theme={null}
pip install scancode-toolkit
```

> **Note:** This is only required if you intend to use the `-D` or `--dependencies` flag to scan declared dependencies. Standard file and snippet scanning does not require this package.

### Installation on Externally Managed Environments

Modern Linux distributions (Ubuntu 23.04+, Fedora 38+, Debian 11+) enforce externally managed Python environments, which prevent direct `pip` installs into the system Python. Use [`pipx`](https://pipx.pypa.io/stable/installation/) to install `scanoss-py` in an isolated environment:

```bash theme={null}
# Install scanoss-py
pipx install scanoss

# Upgrade an existing installation
pipx upgrade scanoss

# Install scanoss-py with fast winnowing support
pipx install scanoss[fast_winnowing]

# Install scancode-toolkit to scan declared dependencies
pipx install scancode-toolkit
```
