Installation

Maigret s’installe avec pip ou Docker, ou peut simplement être lancé depuis le dépôt cloné. Il est également accessible en ligne via le bot Telegram communautaire, dont le code source est disponible sur GitHub.

Binaires EXE autonomes pour Windows

Un maigret_standalone.exe autonome pour Windows est publié dans la section Releases du dépôt GitHub. Une nouvelle version est construite automatiquement après chaque commit sur les branches main et dev.

Il y a deux façons de lancer l’EXE :

  • Double-cliquez dessus depuis l’Explorateur. Maigret vous demandera un nom d’utilisateur, lancera une recherche par défaut et marquera une pause à la fin, afin que les liens des rapports affichés restent à l’écran jusqu’à ce que vous appuyiez sur Entrée.

  • Lancez-le depuis un terminal pour maîtriser toutes les options :

    1. Appuyez sur Win+R, tapez cmd et appuyez sur Entrée (ou utilisez PowerShell).

    2. Placez-vous dans le dossier où vous avez enregistré le fichier, par exemple cd %USERPROFILE%\Downloads.

    3. Lancez-le avec au moins un nom d’utilisateur :

      maigret_standalone.exe USERNAME
      maigret_standalone.exe USERNAME --html       :: also save an HTML report
      maigret_standalone.exe USERNAME --pdf        :: also save a PDF report
      maigret_standalone.exe --help                :: list all options
      

Les rapports sont écrits à côté de l’EXE, dans un sous-dossier reports\.

Guide vidéo pour le lancer : https://youtu.be/qIgwTZOmMmM.

Signature du code

Les binaires Windows sont construits par GitHub Actions depuis ce dépôt. Le projet a déposé une demande de certificat de signature de code gratuit auprès de la SignPath Foundation ; une fois le certificat délivré, les binaires Windows publiés seront signés dans le cadre de la même construction automatisée.

Shells cloud et notebooks Jupyter

Si vous ne souhaitez pas installer Maigret en local, vous pouvez passer par un shell cloud ou un notebook Jupyter. Cliquez sur l’un des boutons ci-dessous et suivez les instructions pour le lancer dans votre navigateur.

Ouvrir dans Cloud Shell Exécuter sur Replit Ouvrir dans Colab Ouvrir dans Binder

Snap (Linux)

Maigret est sur le Snap Store pour amd64 et arm64. Il ne nécessite ni Python ni pip :

Télécharger depuis le Snap Store
sudo snap install maigret

# usage
maigret username

Le snap est strictement confiné : il peut lire et écrire dans votre répertoire personnel, et presque rien d’autre. Lancez-le depuis un répertoire situé sous $HOME et les rapports atterriront dans ./reports comme d’habitude. Le lancer depuis un endroit qu’il ne voit pas, /tmp par exemple, échoue avant même le début de la recherche.

L’accès aux clés USB et autres supports amovibles n’est pas connecté par défaut :

sudo snap connect maigret:removable-media

Les mises à jour arrivent d’elles-mêmes via snapd : la base de sites embarquée et le code restent donc à jour sans aucune intervention.

Installation locale depuis PyPI

Maigret est livré avec une base de sites embarquée. Après une installation depuis PyPI (ou par toute autre méthode), il peut récupérer automatiquement depuis GitHub une base plus récente et compatible lors de son exécution, voir Mise à jour automatique de la base dans Paramètres.

Note

Python 3.10 ou supérieur et pip sont requis, Python 3.11 est recommandé.

# install from pypi
pip3 install maigret

# usage
maigret username

La prise en charge des rapports PDF est fournie comme extra facultatif, car elle repose sur des bibliothèques graphiques système que pip ne peut pas installer à votre place. Si vous comptez utiliser --pdf, installez Maigret avec l’extra pdf :

pip3 install 'maigret[pdf]'

Voir Facultatif : les rapports PDF (maigret[pdf]) plus bas pour comprendre en détail pourquoi le PDF est facultatif et comment corriger les erreurs de compilation les plus courantes.

Installation isolée avec pipx

pip3 install maigret installe Maigret et ses dépendances dans l’environnement Python actif, quel qu’il soit. Si c’est le Python du système, l’installation peut entrer en conflit avec des paquets gérés par votre distribution ; sur les versions récentes de Debian, Ubuntu et Fedora, pip refuse d’ailleurs catégoriquement, avec error: externally-managed-environment.

pipx évite tout cela. Il donne à Maigret son propre environnement virtuel, ne place que la commande maigret dans votre PATH et tient ses dépendances à l’écart du reste de la machine :

pipx install maigret

# usage
maigret username

L’extra pdf fonctionne de la même façon :

pipx install 'maigret[pdf]'

La mise à jour et la désinstallation tiennent chacune en une commande :

pipx upgrade maigret
pipx uninstall maigret

Note

Si vous utilisez déjà uv, uv tool install maigret fait le même travail.

Version de développement (GitHub)

git clone https://github.com/soxoj/maigret && cd maigret
pip3 install .

# OR
pip3 install git+https://github.com/soxoj/maigret.git

# usage
maigret username

# OR use poetry in case you plan to develop Maigret
pip3 install poetry
poetry run maigret

Docker

# official image of the development version, updated from the github repo
docker pull soxoj/maigret

# usage
docker run -v /mydir:/app/reports soxoj/maigret:latest username --html

# manual build
docker build -t maigret .

Dépannage

Si vous rencontrez des erreurs de compilation pendant l’installation, du type cannot find ft2build.h, ou des erreurs liées à reportlab / _renderPM, vous devez installer les dépendances système nécessaires à la compilation des extensions natives.

Debian/Ubuntu/Kali :

sudo apt install -y libfreetype6-dev libjpeg-dev libffi-dev

Fedora/RHEL/CentOS :

sudo dnf install -y freetype-devel libjpeg-devel libffi-devel

Arch Linux :

sudo pacman -S freetype2 libjpeg-turbo libffi

macOS (Homebrew) :

brew install freetype

Une fois les dépendances système installées, relancez l’installation de Maigret.

Si le problème persiste, envisagez plutôt Docker, qui embarque toutes les dépendances nécessaires.

Facultatif : les rapports PDF (maigret[pdf])

Le format de rapport --pdf est fourni comme extra facultatif. Pour l’activer :

pip3 install 'maigret[pdf]'

Si la prise en charge du PDF n’est pas installée et que vous passez --pdf, Maigret affiche un avertissement et continue sans planter : tous les autres formats de sortie (--html, --json, --csv, --txt, --xmind, --graph) continuent de fonctionner.

Pourquoi le PDF est-il facultatif ?

Maigret produit ses PDF en convertissant un modèle HTML, et cette chaîne de conversion dépend au bout du compte de la bibliothèque graphique cairo, via une succession de paquets Python à peu près comme ceci

maigret[pdf] → xhtml2pdf → svglib → rlPyCairo → pycairo → libcairo2 (system)

Au bas de cette chaîne se trouve une bibliothèque C, libcairo2, qui doit être présente sur la machine avant que pip ne puisse construire les liaisons Python. Le paquet de liaison Python (pycairo) ne publie actuellement que des wheels Windows sur PyPI ; sous Linux et macOS, pip se rabat donc sur une compilation depuis les sources, qui échoue dès que pkg-config ne trouve pas cairo. L’erreur ressemble à ceci

../cairo/meson.build:31:12: ERROR: Dependency "cairo" not found (tried pkg-config)
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

Imposer toute cette chaîne à chaque installation de Maigret, uniquement pour que le groupe bien plus restreint d’utilisateurs qui veulent vraiment des PDF puisse en avoir, serait un mauvais compromis : xhtml2pdf est donc placé derrière l’extra pdf.

Deux autres paquets, arabic-reshaper et python-bidi, sont réunis dans le même extra. Le cœur de Maigret ne les importe jamais ; ils ne servent qu’à xhtml2pdf, pour façonner les glyphes arabes et mettre en page le texte de droite à gauche dans les PDF. python-bidi v0.5+ est en outre une liaison Rust : sur les plateformes de niche sans wheel publiée, il déclencherait une compilation Cargo chez des utilisateurs qui n’ont jamais demandé le PDF.

Installer les prérequis système

Installez les en-têtes de cairo, pkg-config et une chaîne de compilation C fonctionnelle avant de lancer pip install 'maigret[pdf]'.

Debian / Ubuntu / Linux Mint / Kali :

sudo apt update
sudo apt install -y libcairo2-dev pkg-config python3-dev build-essential
pip3 install --upgrade pip setuptools wheel
pip3 install 'maigret[pdf]'

Fedora / RHEL / CentOS :

sudo dnf install -y cairo-devel pkgconfig python3-devel gcc
pip3 install 'maigret[pdf]'

Arch Linux :

sudo pacman -S cairo pkgconf base-devel
pip3 install 'maigret[pdf]'

Alpine Linux :

sudo apk add cairo-dev pkgconf python3-dev build-base
pip3 install 'maigret[pdf]'

macOS (Homebrew) :

brew install cairo pkg-config
pip3 install --upgrade pip setuptools wheel
pip3 install 'maigret[pdf]'

Windows :

Aucun paquet système n’est nécessaire : pycairo publie des wheels précompilées pour Windows. Lancez simplement :

pip install 'maigret[pdf]'

Google Cloud Shell / Colab / Replit / CI générique :

Ces environnements se comportent comme Debian/Ubuntu : installez le même trio libcairo2-dev pkg-config python3-dev build-essential avant pip install 'maigret[pdf]'. Si vous ne maîtrisez pas l’image de base et ne pouvez pas faire apt install, laissez tomber l’extra et utilisez les rapports --html : ils contiennent les mêmes données et s’ouvrent dans n’importe quel navigateur.

maigret: command not found après l’installation

Si pip affiche des avertissements du type

WARNING: The script maigret is installed in
'/home/<user>/.local/bin' which is not on PATH.

…et que maigret --version échoue ensuite avec command not found, c’est que votre installation --user a placé le script de point d’entrée dans un répertoire que le shell ne parcourt pas. Ajoutez-le au PATH :

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Ou installez dans un environnement virtuel, où le point d’entrée atterrit automatiquement dans le bin/ du venv :

python3 -m venv ~/.venvs/maigret
source ~/.venvs/maigret/bin/activate
pip install 'maigret[pdf]'   # or just `pip install maigret`

Facultatif : le solveur de contournement Cloudflare

Avertissement

Expérimental. Le webgate Cloudflare est en cours de développement actif ; le schéma de configuration et le comportement en ligne de commande peuvent changer sans garantie de compatibilité ascendante.

Les sites marqués cf_js_challenge / cf_firewall exigent un vrai navigateur pour passer leur défi JavaScript. Pour vérifier ces sites, vous pouvez lancer une instance locale de FlareSolverr : Maigret y redirigera les vérifications protégées lorsque --cloudflare-bypass est activé :

docker run -d -p 8191:8191 --name flaresolverr ghcr.io/flaresolverr/flaresolverr:latest

C’est facultatif : Maigret fonctionne sans. Seuls les sites dont le champ protection recoupe settings.cloudflare_bypass.trigger_protection ont besoin du solveur. Voir Contournement du webgate Cloudflare pour les détails.