# Dépannage des problèmes d'instrumentation automatique de Python

LLMS index: [llms.txt](/llms.txt)

---

## Problèmes d'installation {#installation-issues}

### Échec de l'installation du paquet Python {#python-package-installation-failure}

Les installations de paquets Python nécessitent `gcc` et `gcc-c++`, que vous
devrez peut-être installer si vous utilisez une version allégée de Linux, telle
que CentOS.

<!-- markdownlint-disable blanks-around-fences -->

    <ul class="nav nav-tabs" id="tabs-0" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"
          data-td-tp-persist="centos" aria-controls="tabs-00-00" aria-selected="true">
        CentOS
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"
          data-td-tp-persist="debian/ubuntu" aria-controls="tabs-00-01" aria-selected="false">
        Debian/Ubuntu
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-00-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-02" role="tab"
          data-td-tp-persist="alpine" aria-controls="tabs-00-02" aria-selected="false">
        Alpine
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-0-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">yum -y install python3-devel
</span></span><span class="line"><span class="cl">yum -y install gcc-c++
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-00-01" role="tabpanel" aria-labelled-by="tabs-00-01-tab" tabindex="0">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">apt install -y python3-dev
</span></span><span class="line"><span class="cl">apt install -y build-essential
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-00-02" role="tabpanel" aria-labelled-by="tabs-00-02-tab" tabindex="0">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">apk add python3-dev
</span></span><span class="line"><span class="cl">apk add build-base
</span></span></code></pre></div>
    </div>
</div>


{#bootstrap-using-uv}

### Bootstrap avec uv {#bootstrap-using-uv}

L'exécution de `opentelemetry-bootstrap -a install` lors de l'utilisation du
gestionnaire de paquets [uv](https://docs.astral.sh/uv/) peut entraîner des
configurations de dépendances erronées ou inattendues.

Au lieu de cela, vous pouvez générer dynamiquement les exigences OpenTelemetry
et les installer en utilisant `uv`.

Tout d'abord, installez les paquets appropriés (ou ajoutez-les à votre fichier
de projet et exécutez `uv sync`) :

```sh
uv add opentelemetry-distro opentelemetry-exporter-otlp
```

Maintenant, vous pouvez installer l'auto-instrumentation :

```sh
uv run opentelemetry-bootstrap -a requirements | uv add --requirement -
```

Enfin, utilisez `uv run` pour démarrer votre application (voir
[Configuration de l'agent](/docs/zero-code/python/#configuring-the-agent)) :

```sh
uv run opentelemetry-instrument python myapp.py
```

Veuillez noter que vous devez réinstaller l'auto-instrumentation chaque fois que
vous exécutez `uv sync` ou mettez à jour des paquets existants. Il est donc
recommandé de faire de l'installation une partie de votre pipeline de
construction.

## Problèmes d'instrumentation {#instrumentation-issues}

### Le mode de débogage de Flask avec le rechargeur casse l'instrumentation {#flask-debug-mode-with-reloader-breaks-instrumentation}

Le mode de débogage peut être activé dans l'application Flask comme ceci :

```python
if __name__ == "__main__":
    app.run(port=8082, debug=True)
```

Le mode de débogage peut empêcher l'instrumentation de se produire car il active
un rechargeur. Pour exécuter l'instrumentation lorsque le mode de débogage est
activé, définissez l'option `use_reloader` sur `False` :

```python
if __name__ == "__main__":
    app.run(port=8082, debug=True, use_reloader=False)
```

## Problèmes de connectivité {#connectivity-issues}

### Connectivité gRPC {#grpc-connectivity}

Pour déboguer les problèmes de connectivité gRPC de Python, définissez les
variables d'environnement de débogage gRPC suivantes :

```sh
export GRPC_VERBOSITY=debug
export GRPC_TRACE=http,call_error,connectivity_state
opentelemetry-instrument python VOTRE_APP.py
```
