Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🐍
Debutant 10 min Python

Virtual environments Python

Pourquoi Virtual environments Python ?

Le développement d'applications avec Python peut être très complexe, nécessitant souvent une combinaison de bibliothèques et de dépendances spécifiques pour chaque projet. L'utilisation de virtual environments permet de créer des environnements isolés pour chacun de ces projets. Cela garantit que les packages et versions spécifiques nécessaires à un projet ne interfèrent pas avec ceux d'un autre, évitant ainsi les conflits et les erreurs.

Un cas d'usage concret est le développement d'une application web qui utilise Django, une bibliothèque très populaire en Python. Chaque fois qu'un développeur clone ce dépôt sur son ordinateur personnel ou un serveur distant, il devra installer toutes les dépendances spécifiques à Django et à tout autre package utilisé par l'application. Sans virtual environments, cela pourrait entraîner des conflits avec d'autres projets Python sur la même machine ou même entre différentes versions de Django.

Prerequis

  • Connaissances de base en Python
  • Installation du logiciel Python (v3.6 ou plus tard recommandé)
  • Utilisation d'un éditeur de code, comme Visual Studio Code, PyCharm, ou un simple éditeur de texte avec une syntaxe colorée pour Python

Concepts fondamentaux

Création et Activation

La première étape consiste à créer un environnement virtuel. Cela peut être fait en utilisant la commande venv qui est incluse dans Python 3.

python -m venv env

Pour activer l'environnement, utilisez la commande suivante :

.\env\Scripts\activate
## 
source env/bin/activate

Une fois activé, votre environnement virtuel sera indiqué dans le terminal par le nom de ce dernier.

Installation des Packages

Dans un environnement virtuel actif, vous pouvez installer des packages Python avec pip, le gestionnaire de paquets standard de Python. Par exemple, pour installer la bibliothèque requests :

pip install requests

Désactivation

Pour quitter un environnement virtuel et revenir à votre environnement global de Python, utilisez simplement la commande suivante :

deactivate

Mise en pratique : Projet fil rouge - Un Mini-Scraper Web

Pour illustrer comment utiliser les virtual environments, nous allons créer un petit scraper web qui récupère des titres de news à partir d'un site web.

Étape 1 : Créer le projet et activer l'environnement virtuel

mkdir my_scraper_project
cd my_scraper_project
## 
python -m venv venv
## 
.\venv\Scripts\activate
## 
source venv/bin/activate

Étape 2 : Installer les dépendances nécessaires

pip install requests
## 
pip install beautifulsoup4

Étape 3 : Créer la structure du projet et les fichiers Python

Créer un fichier main.py avec le code suivant :


import requests
from bs4 import BeautifulSoup

def fetch_news(url):
    """Fetch news from a given URL."""
    response = requests.get(url)
    return response.text

def parse_news(html_content):
    """Parse HTML content and extract news titles."""
    soup = BeautifulSoup(html_content, 'html.parser')
    headlines = [header.text for header in soup.find_all('h2')]
    return headlines

def main():
    url = 'https://example-news.com'
    html_content = fetch_news(url)
    news_headlines = parse_news(html_content)

    for headline in news_headlines:
        print(headline)

if __name__ == "__main__":
    main()

Étape 4 : Exécuter le script

python main.py

Le script devrait afficher les titres de news extraits du site web spécifié.

Erreurs fréquentes et debugging

  1. Erreur : ModuleNotFoundError: No module named 'requests'

    Cause : Le package requests n'est pas installé dans l'environnement virtuel.

    Correction :

    # Installez requests dans l'environnement virtuel
    pip install requests
    
  2. Erreur : AttributeError: 'Response' object has no attribute 'text'

    Cause : La bibliothèque requests n'est pas correctement importée ou la méthode get() est utilisée de manière incorrecte.

    Correction :

    # Assurez-vous d'avoir correctement importé requests et utilisé get()
    from requests import get
    
    def fetch_news(url):
        """Fetch news from a given URL."""
        response = get(url)
        return response.text
    
  3. Erreur : AttributeError: 'ResultSet' object has no attribute 'text'

    Cause : Le package BeautifulSoup4 n'est pas correctement importé ou la méthode find_all() est utilisée de manière incorrecte.

    Correction :

    # Assurez-vous d'avoir correctement importé BeautifulSoup4 et utilisé find_all()
    from bs4 import BeautifulSoup
    
    def parse_news(html_content):
        """Parse HTML content and extract news titles."""
        soup = BeautifulSoup(html_content, 'html.parser')
        headlines = [header.text for header in soup.find_all('h2')]
        return headlines
    

Pour aller plus loin

  1. Utiliser des fichiers requirements.txt : Utilisez un fichier pour lister tous les packages nécessaires à votre projet et installer-les automatiquement.

    # Creer un fichier requirements.txt
    pip freeze > requirements.txt
    
    # Installer toutes les dependances du fichier requirements.txt
    pip install -r requirements.txt
    
  2. Gérer les versions des packages : Utilisez le gestionnaire de paquets pip-tools pour gérer et installer des versions spécifiques de packages.

    # Installez pip-tools si ce n'est pas déjà fait
    pip install pip-tools
    
    # Creer un fichier requirements.in avec les packages principaux
    echo "requests" > requirements.in
    
    # Generer le fichier requirements.txt avec des versions spécifiques
    pip-compile requirements.in
    
  3. Utiliser des environnements virtuels dans un IDE : La plupart des IDE modernes (VS Code, PyCharm) offrent une intégration facile pour gérer les virtual environments.

Défi pratique

Créez un mini-projet qui utilise requests et BeautifulSoup4 pour scraper des données d'un site web public. Par exemple, vous pouvez créer un scraper pour récupérer la liste des produits d'une boutique en ligne et afficher leurs noms et prix.

Besoin d'aide sur Python ?

Besoin d'aide sur un projet technique ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

Qu'est-ce qu'une environnement virtuel Python?
Un environnement virtuel Python est une instance isolée du système d'exploitation qui contient un ensemble spécifique de paquets et de bibliothèques Python.
Comment créer un environnement virtuel Python?
Pour créer un environnement virtuel, utilisez la commande `python3 -m venv nom_du_virtuel`. Cela créera un nouveau répertoire avec toutes les dépendances nécessaires.
Quelle est l'utilité d'un environnement virtuel?
Les environnements virtuels aident à gérer les dépendances de manière isolée, permettant aux développeurs de travailler sur plusieurs projets avec des versions différentes des bibliothèques Python.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.