Installation on a host ======================== This guide covers running Conpot directly on your machine (outside Docker). Conpot requires **Python 3.10 or newer** (see ``requires-python`` in ``pyproject.toml``). System packages (Debian / Ubuntu) --------------------------------- Install build dependencies for lxml, gevent, and cryptography: :: $ sudo apt-get install gcc libxslt1-dev python3-dev libevent-dev libffi-dev libssl-dev Other distributions need the equivalent development headers and a compiler. Install uv (recommended for development) ------------------------------------------ For working from a git checkout, `uv `_ manages dependencies and a local virtual environment. Follow the `official installation instructions `_ for your platform. Install from source with uv ^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: $ git clone https://github.com/mushorg/conpot.git $ cd conpot $ uv sync --group dev This creates ``.venv`` in the project directory, installs Conpot in editable form, and adds development tools (for example pytest). Run Conpot: :: $ uv run conpot --template default -f Run tests: :: $ uv run pytest The project ``Makefile`` targets ``install``, ``test``, and ``format`` call uv the same way. Updating dependencies (maintainers and contributors): edit ``pyproject.toml``, run ``uv lock``, and commit the updated ``uv.lock`` so CI stays reproducible. Install the release from PyPI with pip -------------------------------------- If you only want a released version and already use ``pip`` with a virtual environment, you can install Conpot from PyPI as before: :: $ python3 -m venv conpot-env $ source conpot-env/bin/activate $ pip install conpot Install from source with pip (without uv) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you prefer not to install uv, you can build from a git clone using a PEP 517–compatible installer: :: $ python3 -m venv conpot-env $ source conpot-env/bin/activate $ pip install ./path/to/conpot Optional test dependencies (pytest, pytest-cov) are listed in the ``dev`` dependency group in ``pyproject.toml``; with uv, use ``uv sync --group dev``. With pip alone, install those packages manually if you need them. Classic virtualenv workflow --------------------------- You can still combine ``virtualenv`` (or ``python -m venv``) with ``pip install conpot`` or ``pip install .`` from a source tree; uv is optional but recommended for contributors because it respects the lockfile.