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

# Gestion des dépendances

> Apprenez à installer et gérer les packages et les dépendances pour votre application Replit dans différents langages.

Replit propose plusieurs façons d'installer et de gérer les packages pour votre application Replit. Vous pouvez installer des packages via le [Shell](/core-concepts/project-editor/editor-and-tools/shell), demander à [Agent](/core-concepts/agent/) de s'en charger, ou laisser Replit détecter et installer automatiquement les dépendances manquantes lorsque vous exécutez votre application Replit.

## Installer des packages via le Shell

Ouvrez l'outil **Shell** dans l'Éditeur de projet et exécutez la commande appropriée pour le gestionnaire de packages de votre langage :

<CodeGroup>
  ```bash Node.js (npm) theme={null}
  npm install <package-name>
  ```

  ```bash Node.js (pnpm) theme={null}
  pnpm add <package-name>
  ```

  ```bash Python (poetry) theme={null}
  poetry add <package-name>
  ```

  ```bash Python (pip) theme={null}
  pip install <package-name>
  ```

  ```bash Ruby theme={null}
  bundle add <gem-name>
  ```
</CodeGroup>

Vous pouvez également utiliser le [Universal Package Manager (UPM)](https://github.com/replit/upm/) de Replit pour installer des packages dans les langages pris en charge :

```bash theme={null}
upm add <package-name>
```

Pour installer une version spécifique :

```bash theme={null}
upm add 'flask==2.3.3'
```

Pour tous les langages et gestionnaires de packages pris en charge, consultez [UPM : Langages pris en charge](https://github.com/replit/upm/#supported-languages).

## Installer des packages via Agent

Vous pouvez demander à [Agent](/core-concepts/agent/) d'installer des packages directement dans le chat. Par exemple :

* « Installe le package axios »
* « Ajoute Flask et SQLAlchemy à mon projet »
* « Configure TailwindCSS »

Agent installe le package en utilisant le gestionnaire de packages approprié pour votre projet et met à jour les fichiers de configuration correspondants.

## Détection automatique des imports

Replit analyse automatiquement votre code pour détecter les dépendances manquantes chaque fois que vous sélectionnez **Run**. Si votre code importe un package qui n'est pas encore installé, Replit le détecte et installe automatiquement la dernière version.

Par exemple, si vous ajoutez `import flask` à `main.py`, la prochaine fois que vous sélectionnez **Run**, la **Console** affiche un message indiquant que **Flask** est en cours d'installation.

<Note>
  Vous pouvez configurer la détection automatique des imports dans le fichier [.replit](/core-concepts/project-editor/app-setup/configuration#replit-file) à l'aide du paramètre `packager.features.guessImports`.
</Note>

### Remplacer la détection automatique

Si le mauvais package a été détecté, ou si vous avez besoin d'une version spécifique, exécutez la commande d'installation correcte dans le Shell. Par exemple :

```bash theme={null}
upm add 'flask==2.3.3'
```

Vous pouvez également exclure des packages ou des chemins spécifiques de la détection automatique dans votre fichier [.replit](/core-concepts/project-editor/app-setup/configuration#replit-file) :

## Gestionnaires de packages Python

Lorsque vous créez une application Replit Python, votre gestionnaire de packages est **poetry** par défaut. Cela signifie que `pip install` ne gère pas vos dépendances. Utilisez plutôt `poetry add <package>` ou `upm add <package>` dans le Shell.

### Passer de poetry à pip

Si vous préférez utiliser `pip`, suivez ces étapes :

<Steps>
  <Step>
    Ouvrez le Shell et exécutez :

    Supprimez le fichier de verrouillage pour que l'infrastructure de packaging passe à pip :

    ```bash theme={null}
    rm poetry.lock
    ```
  </Step>

  <Step title="Déplacer vos dépendances">
    Transférez vos dépendances de la section `[tool.poetry.dependencies]` dans `pyproject.toml` vers `requirements.txt`. Par exemple, `flask = "^3.0.2"` devient `flask>=3.0.2,<4`.
  </Step>

  <Step title="Nettoyer pyproject.toml">
    Supprimez les sections `[tool.poetry...]` de `pyproject.toml`.
  </Step>
</Steps>

Après ces modifications, l'infrastructure de packaging utilise `pip` pour toutes les opérations futures, et la détection automatique des imports continue de fonctionner comme prévu.

## Dépendances système avec Nix

Replit prend en charge tous les langages de programmation grâce à l'intégration avec [Nix](https://nixos.org/). Si vous avez besoin de dépendances au niveau système au-delà des packages de langages standard, vous pouvez les ajouter à votre fichier [replit.nix](/core-concepts/project-editor/app-setup/configuration#replit-nix-file).

### Packages Nix

Ajoutez des dépendances au niveau système en modifiant directement `replit.nix`. Vous pouvez rechercher les packages disponibles sur [search.nixos.org](https://search.nixos.org/packages).

### Modules

Les modules combinent la prise en charge des langages de programmation, des formateurs et des gestionnaires de packages. Ils constituent la base de votre application Replit. Si vous créez une application Replit à partir d'un modèle ou d'un dépôt GitHub, Replit installe automatiquement les modules requis.

Vous pouvez personnaliser les modules et d'autres paramètres Nix à l'aide du fichier [.replit](/core-concepts/project-editor/app-setup/configuration#replit-file).

## Configuration du gestionnaire de packages

Vous pouvez affiner le comportement de la gestion des packages dans votre fichier [.replit](/core-concepts/project-editor/app-setup/configuration#replit-file) :

| Paramètre                             | Description                                                                | Valeur par défaut       |
| ------------------------------------- | -------------------------------------------------------------------------- | ----------------------- |
| `packager.language`                   | Langage utilisé pour les opérations de packages                            | Détecté automatiquement |
| `packager.features.guessImports`      | Détecter et installer automatiquement les packages manquants à l'exécution | `true`                  |
| `packager.features.packageSearch`     | Activer la prise en charge de la recherche de packages                     | `true`                  |
| `packager.features.enabledForHosting` | Exiger l'installation des packages lors de l'hébergement                   | `false`                 |
| `packager.afterInstall`               | Commande à exécuter après l'installation d'un package                      | —                       |
| `packager.ignoredPaths`               | Chemins à ignorer lors de la détection des imports                         | `[]`                    |
| `packager.ignoredPackages`            | Packages à exclure de la détection automatique                             | `[]`                    |
