Partager via


Projets Python dans Visual Studio

Les applications Python sont généralement définies à l’aide de dossiers et de fichiers uniquement. Cette structure peut devenir complexe à mesure que les applications augmentent et impliquent peut-être des fichiers générés automatiquement, JavaScript pour les applications web, et ainsi de suite. Un projet Visual Studio peut vous aider à gérer la complexité. Le projet (un .pyproj fichier) identifie tous les fichiers sources et de contenu associés à votre projet. Il contient des informations de build pour chaque fichier, conserve les informations à intégrer aux systèmes de contrôle de code source et vous aide à organiser votre application en composants logiques.

Capture d’écran montrant un projet Python ouvert dans l’Explorateur de solutions dans Visual Studio.

Les projets sont toujours gérés dans une solution Visual Studio. Une solution peut contenir n’importe quel nombre de projets qui peuvent faire référence les uns aux autres, tels qu’un projet Python qui fait référence à un projet C++ qui implémente un module d’extension. Avec cette relation, Visual Studio génère automatiquement le projet C++ (si nécessaire) lorsque vous démarrez le débogage du projet Python. Pour plus d’informations, consultez Solutions et projets dans Visual Studio.

Visual Studio fournit différents modèles de projet Python pour créer rapidement plusieurs types de structures d’application. Vous pouvez choisir un modèle pour créer un projet à partir d’une arborescence de dossiers existante ou créer un projet propre et vide. Pour obtenir la liste des modèles disponibles, consultez le tableau de la section Modèles de projet .

Conseils pour l’utilisation de projets Python

Vous n’avez pas besoin d’utiliser des projets pour exécuter du code Python dans Visual Studio, mais il existe des avantages à le faire. À mesure que vous commencez, passez en revue les considérations suivantes relatives à l’utilisation de projets et de Python.

  • Dans Visual Studio 2019 et versions ultérieures, vous pouvez ouvrir un dossier contenant du code Python et exécuter le code sans créer de fichiers de projet et de solution Visual Studio.

    Les étapes guidées de cette approche sont disponibles dans le guide de démarrage rapide : Ouvrir et exécuter du code Python dans un article de dossier .

  • Vous n’avez pas besoin d’un projet pour exécuter du code Python dans Visual Studio. Toutes les versions de Visual Studio fonctionnent bien avec le code Python.

    Vous pouvez ouvrir un fichier Python lui-même et accéder immédiatement aux fonctionnalités de saisie semi-automatique, IntelliSense et débogage. Toutefois, il existe certains inconvénients potentiels à utiliser le code sans projet :

    • Étant donné que le code utilise toujours l’environnement global par défaut, vous pouvez voir des achèvements ou des erreurs incorrects si le code est destiné à un autre environnement.
    • Visual Studio analyse tous les fichiers et packages du dossier à partir duquel le fichier unique est ouvert. Ce processus peut consommer beaucoup de temps processeur.
  • Vous pouvez créer un projet Visual Studio à partir de code existant. Cette approche est décrite dans la section Créer un projet à partir de fichiers existants .

Tâches de projet de base : fichiers, environnements et démarrage

Lorsque vous utilisez des projets avec votre code Python, vous effectuez des tâches de base, notamment l’ajout de fichiers, l’affectation d’un fichier de démarrage et la définition de l’environnement d’interpréteur Python.

Lorsque vous développez votre application, vous devez généralement ajouter de nouveaux fichiers de différents types à votre projet. Il est facile d’ajouter d’autres fichiers. Cliquez avec le bouton droit sur votre projet, sélectionnez Ajouter>un élément existant et recherchez le type de fichier à ajouter. L’option Ajouter> unnouvel élément ouvre une boîte de dialogue qui affiche les modèles d’élément que vous pouvez utiliser pour créer le fichier. Les options incluent des fichiers Python vides, une classe Python, un test unitaire et différents fichiers liés aux applications web. Vous pouvez explorer les options de modèle avec un projet de test pour découvrir ce qui est disponible dans votre version de Visual Studio. Pour plus d’informations, consultez la référence des modèles d’élément.

Chaque projet Python a un fichier de démarrage affecté, qui est affiché en gras dans l’Explorateur de solutions. Le fichier de démarrage s’exécute lorsque vous commencez le débogage (en sélectionnant F5 ou Déboguer>démarrer le débogage) ou lorsque vous exécutez votre projet dans la fenêtre interactive . Vous pouvez ouvrir cette fenêtre avec le raccourci clavier Maj + Alt + F5 ou en sélectionnant Debug>Execute Project in Python Interactive. Pour modifier le fichier de démarrage, cliquez avec le bouton droit sur le fichier à utiliser et sélectionnez Définir en tant qu’élément de démarrage (ou Définir comme fichier de démarrage dans les versions antérieures de Visual Studio).

Si vous supprimez le fichier de démarrage sélectionné d’un projet et que vous ne sélectionnez pas un autre fichier, Visual Studio ne sait pas quel fichier Python utiliser pour démarrer le projet. Dans ce cas, Visual Studio 2017 version 15.6 et ultérieure affiche une erreur. Les versions antérieures ouvrent une fenêtre de sortie avec l’interpréteur Python en cours d’exécution, ou la fenêtre de sortie s’ouvre, puis se ferme immédiatement. Si vous rencontrez l’un de ces comportements, vérifiez que vous disposez d’un fichier de démarrage affecté.

Conseil / Astuce

Pour ouvrir la fenêtre de sortie, cliquez avec le bouton droit sur votre projet et sélectionnez Propriétés. Dans la boîte de dialogue, sélectionnez l’onglet Débogage , puis ajoutez l’indicateur -i au champ Arguments de l’interpréteur . Cet argument entraîne l’exécution de l’interpréteur en mode interactif après la fin d’un programme. La fenêtre reste ouverte jusqu’à ce que vous lafermez, par exemple à l’aide du raccourci clavier ++ Entrée.

Un nouveau projet est toujours associé à l’environnement Python global par défaut. Pour associer le projet à un autre environnement (y compris les environnements virtuels), cliquez avec le bouton droit sur le nœud Environnements Python dans le projet. Sélectionnez Ajouter un environnement , puis sélectionnez les environnements souhaités. Vous pouvez également utiliser le contrôle déroulant des environnements dans la barre d’outils pour sélectionner un environnement ou ajouter un autre environnement au projet.

Capture d’écran montrant la commande Ajouter un environnement dans la barre d’outils Python dans Visual Studio.

Pour modifier l’environnement actif, cliquez avec le bouton droit sur l’environnement souhaité dans l’Explorateur de solutions , puis sélectionnez Activer l’environnement , comme illustré dans l’image suivante. Pour plus d’informations, consultez Sélectionner un environnement pour un projet.

Capture d’écran montrant comment activer un environnement pour un projet Python dans Visual Studio.

Modèles de projets

Visual Studio vous offre de nombreuses façons de configurer un projet Python, à partir de zéro ou à partir du code existant. Pour utiliser un modèle, sélectionnez Fichier>nouveau>projet ou cliquez avec le bouton droit sur la solution dans l’Explorateur de solutions, puis sélectionnez Ajouter>un nouveau projet. Dans la boîte de dialogue nouveau projet, vous pouvez voir des modèles spécifiques à Python en effectuant une recherche de Python ou en sélectionnant le nœud du langage>Python :

Capture d’écran montrant la boîte de dialogue nouveau projet avec les modèles Python disponibles dans Visual Studio.

Les modèles suivants sont disponibles dans Visual Studio version 2022.

Template Descriptif
À partir du code Python existant Crée un projet Visual Studio à partir d’un code Python existant dans une structure de dossiers.
Python Application Fournit une structure de projet de base pour une nouvelle application Python avec un seul fichier source vide. Par défaut, le projet s’exécute dans l’interpréteur de console de l’environnement global par défaut. Vous pouvez modifier l’attribution d’un autre environnement.
Projets web Projets pour les applications web basées sur différentes infrastructures, notamment Bottle, Django et Flask.
Application en arrière-plan (IoT) Prend en charge le déploiement de projets Python pour s’exécuter en tant que services en arrière-plan sur les appareils. Pour plus d’informations, consultez le Centre de développement Windows IoT.
Module d’extension Python Ce modèle apparaît sous Visual C++ si vous installez les outils de développement natifs Python avec la charge de travail Python dans Visual Studio 2017 ou version ultérieure (voir Installation). Le modèle fournit la structure principale d’une DLL d’extension C++, similaire à la structure décrite dans Créer une extension C++ pour Python.

Les modèles suivants sont disponibles dans Visual Studio version 2019. Tous les modèles disponibles dans la version 2019 ne sont pas disponibles dans les versions antérieures de Visual Studio.

Template Descriptif
À partir du code Python existant Crée un projet Visual Studio à partir d’un code Python existant dans une structure de dossiers.
Python Application Fournit une structure de projet de base pour une nouvelle application Python avec un seul fichier source vide. Par défaut, le projet s’exécute dans l’interpréteur de console de l’environnement global par défaut. Vous pouvez modifier l’attribution d’un autre environnement.
Projets web Projets pour les applications web basées sur différentes infrastructures, notamment Bottle, Django et Flask.
Application en arrière-plan (IoT) Prend en charge le déploiement de projets Python pour s’exécuter en tant que services en arrière-plan sur les appareils. Pour plus d’informations, consultez le Centre de développement Windows IoT.
Module d’extension Python Ce modèle apparaît sous Visual C++ si vous installez les outils de développement natifs Python avec la charge de travail Python dans Visual Studio 2017 ou version ultérieure (voir Installation). Le modèle fournit la structure principale d’une DLL d’extension C++, similaire à la structure décrite dans Créer une extension C++ pour Python.
IronPython Application Utilise IronPython par défaut et active l’interopérabilité .NET et le débogage en mode mixte avec les langages .NET. Ce modèle est similaire au modèle d’application Python.
IronPython WPF Application Fournit une structure de projet à l’aide de IronPython avec des fichiers XAML Windows Presentation Foundation pour l’interface utilisateur de l’application. Visual Studio fournit un concepteur d’interface utilisateur XAML, le code-behind peut être écrit en Python et l’application s’exécute sans afficher de console.
IronPython Silverlight Web Page Crée un projet IronPython qui s’exécute dans un navigateur à l’aide de Silverlight. Le code Python de l’application est inclus dans la page web en tant que script. Une balise de script réutilisable extrait le code JavaScript pour initialiser IronPython en cours d’exécution à l’intérieur de Silverlight, à partir de laquelle votre code Python peut interagir avec le DOM.
IronPython Windows Forms Application Génère une structure de projet avec IronPython et l’interface utilisateur créées à l’aide de code avec Windows Forms. L’application s’exécute sans afficher de console.

Note

Étant donné que Python est un langage interprété, les projets Python dans Visual Studio ne produisent pas d’exécutable autonome comme d’autres projets de langage compilés tels que C#. Pour plus d’informations, consultez questions et réponses.

Créer un projet à partir de fichiers existants

Suivez ces étapes pour créer un projet à partir de fichiers existants.

Important

Le processus suivant ne déplace ni ne copie aucun fichier source d’origine. Si vous souhaitez utiliser une copie de vos fichiers, commencez par dupliquer le dossier, puis créez le projet.

  1. Lancez Visual Studio et sélectionnez Nouveau>>.

  2. Dans la boîte de dialogue Créer un projet , recherchez Python, sélectionnez Le modèle de code Python existant , puis sélectionnez Suivant.

  3. Dans la boîte de dialogue Configurer votre nouveau projet , entrez un nom et un emplacement de projet, choisissez la solution à contenir, puis sélectionnez Créer.

  4. Dans l’Assistant Créer un projet à partir de Code Python existant, définissez le chemin du dossier sur votre code existant, définissez un filtre pour les types de fichiers et spécifiez les chemins de recherche requis par votre projet, puis sélectionnez Suivant. Si vous ne connaissez pas les chemins de recherche, laissez le champ vide.

    Capture d’écran d’une création de nouveau projet à partir du code existant, y compris le choix du chemin d’accès au dossier, des filtres de type de fichier et des chemins de recherche.

  5. Dans la page suivante, sélectionnez le fichier de démarrage de votre projet. Visual Studio sélectionne l’interpréteur et la version Python globaux par défaut. Vous pouvez modifier l’environnement à l’aide du menu déroulant. Ensuite, sélectionnez Suivant.

    Note

    La boîte de dialogue affiche uniquement les fichiers du dossier racine. Si le fichier souhaité se trouve dans un sous-dossier, laissez le fichier de démarrage vide. Vous pouvez définir le fichier de démarrage dans l’Explorateur de solutions, comme décrit dans une étape ultérieure.

    Capture d’écran de la fenêtre Création d’un nouveau projet à partir de la fenêtre Code existant, y compris le choix du fichier de démarrage et de l’environnement Python.

  6. Sélectionnez l’emplacement pour stocker le fichier projet (fichier .pyproj sur le disque). Si applicable, vous pouvez également inclure la détection automatique d’environnements virtuels et personnaliser le projet pour différents frameworks web. Si vous n'êtes pas sûr(e) de ces options, laissez les champs définis aux valeurs par défaut.

    Capture d’écran d’une nouvelle création de projet à partir de la fenêtre Code existant, y compris l’emplacement du fichier projet et d’autres paramètres facultatifs.

  7. Sélectionnez Terminer.

    Visual Studio crée le projet et l’ouvre dans l’Explorateur de solutions. Si vous souhaitez déplacer le fichier .pyproj vers un autre emplacement, sélectionnez le fichier dans l’Explorateur de solutions, puis sélectionnez Fichier>Enregistrer sous dans la barre d’outils. Cette action met à jour les références de fichiers dans le projet, mais elle ne déplace aucun fichier de code.

  8. Pour définir un autre fichier de démarrage, recherchez le fichier dans l’Explorateur de solutions, cliquez avec le bouton droit sur le fichier, puis sélectionnez Définir comme fichier de démarrage.

Fichiers liés

Les fichiers liés sont des fichiers qui sont introduits dans un projet, mais résident généralement en dehors des dossiers de projet de l’application. Ces fichiers apparaissent dans l’Explorateur de solutions en tant que fichiers normaux avec une icône de raccourci superposée :

Les fichiers liés sont spécifiés dans le fichier .pyproj à l’aide de l’élément <Compile Include="...">. Les fichiers liés sont implicites s’ils utilisent un chemin relatif en dehors de la structure de répertoires. Si les fichiers utilisent des chemins d’accès dans l’Explorateur de solutions, les fichiers liés sont explicites. L’exemple suivant montre des fichiers liés explicitement :

<Compile Include="..\test2.py">
    <Link>MyProject\test2.py</Link>
</Compile>

Les fichiers liés sont ignorés dans les conditions suivantes :

  • Le fichier lié contient des Link métadonnées et le chemin d’accès spécifié dans l’attribut se trouve dans le Include répertoire du projet.
  • Le fichier lié duplique un fichier qui existe dans la hiérarchie du projet.
  • Le fichier lié contient des Link métadonnées et le Link chemin d’accès est un chemin relatif en dehors de la hiérarchie du projet.
  • Le chemin d’accès au lien est rooté.

Utiliser des fichiers liés

Pour ajouter un élément existant en tant que lien, cliquez avec le bouton droit sur le dossier du projet dans lequel vous souhaitez ajouter le fichier, puis sélectionnez Ajouter un>élément existant. Dans la boîte de dialogue, sélectionnez un fichier, puis sélectionnez Ajouter en>tant que lien. S’il n’existe aucun fichier en conflit, cette commande crée un lien dans le dossier sélectionné. Toutefois, le lien n’est pas ajouté s’il existe un fichier existant portant le même nom ou un lien vers ce fichier existe déjà dans le projet.

Si vous tentez de créer un lien vers un fichier qui existe déjà dans les dossiers du projet, le fichier est ajouté en tant que fichier normal et non en tant que lien. Pour convertir un fichier en lien, sélectionnez Fichier>Enregistrer sous pour enregistrer le fichier à un emplacement en dehors de la hiérarchie du projet. Visual Studio convertit automatiquement le fichier en lien. De même, un lien peut être converti à l’aide de Fichier>Enregistrer sous pour sauvegarder le fichier quelque part dans la hiérarchie du projet.

Si vous déplacez un fichier lié dans l’Explorateur de solutions, le lien est déplacé, mais le fichier réel n’est pas affecté. De même, la suppression d’un lien supprime le lien sans affecter le fichier.

Les fichiers liés ne peuvent pas être renommés.

References

Les projets Visual Studio prennent en charge l’ajout de références à des projets et extensions, qui apparaissent sous le nœud Références dans l’Explorateur de solutions :

Capture d’écran montrant comment ajouter une référence d’extension dans des projets Python dans Visual Studio.

Les références d’extension indiquent généralement les dépendances entre les projets et sont utilisées pour fournir IntelliSense au moment du design ou la liaison au moment de la compilation. Les projets Python utilisent des références de manière similaire, mais en raison de la nature dynamique de Python, ils sont principalement utilisés au moment du design pour fournir une meilleure IntelliSense. Ils peuvent également être utilisés pour le déploiement sur Microsoft Azure afin d’installer d’autres dépendances.

Utiliser des modules d’extension

Une référence à un .pyd fichier active IntelliSense pour le module généré. Visual Studio charge le .pyd fichier dans l’interpréteur Python et introspects ses types et fonctions. Visual Studio tente également d’analyser les chaînes de documentation pour que les fonctions fournissent de l’aide sur la signature.

Si, à tout moment, le module d’extension est mis à jour sur le disque, Visual Studio réanalyse le module en arrière-plan. Cette action n’a aucun effet sur le comportement en temps d'exécution, mais certains résultats ne sont pas disponibles jusqu'à ce que l'analyse soit terminée.

Vous devrez peut-être également ajouter un chemin de recherche au dossier qui contient le module.

Utiliser des projets .NET

Lorsque vous utilisez IronPython, vous pouvez ajouter des références aux assemblys .NET pour activer IntelliSense. Pour les projets .NET dans votre solution, cliquez avec le bouton droit sur le nœud Références dans votre projet Python, puis sélectionnez Ajouter une référence. Dans la boîte de dialogue, sélectionnez l’onglet Projets et accédez au projet souhaité. Pour les DLL que vous avez téléchargées séparément, sélectionnez l’onglet Parcourir à la place et accédez à la DLL souhaitée.

Étant donné que les références dans IronPython ne sont disponibles qu’après un appel à la clr.AddReference('<AssemblyName>') méthode, vous devez également ajouter un appel de méthode approprié clr.AddReference à l’assembly. Cet appel est généralement ajouté au début de votre code. Par exemple, le code créé par le modèle de projet Application Windows Forms IronPython (disponible dans Visual Studio 2019) dans Visual Studio inclut deux appels en haut du fichier :

import clr
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')

from System.Drawing import *
from System.Windows.Forms import *

# Other code omitted

Utiliser des projets WebPI

Vous pouvez ajouter des références aux entrées de produit du Web Platform Installer (WebPI) pour le déploiement vers les services de cloud Microsoft Azure, où il est possible d'installer d'autres composants par le biais du flux WebPI. Par défaut, le flux affiché est spécifique à Python et inclut Django, CPython et d’autres composants principaux. Vous pouvez également sélectionner votre propre flux, comme illustré dans l’image suivante. Lorsque vous publiez sur Microsoft Azure, une tâche d’installation installe tous les produits référencés.

Important

Les projets WebPI ne sont pas disponibles dans Visual Studio 2017 ou Visual Studio 2019.

Capture d’écran montrant les références Web Platform Installer (WebPI) dans Visual Studio.