Visual Studio Code
1 Visual Studio Code
Visual Studio Code (VS Code) est un éditeur de code source développé par Microsoft, gratuit et open-source, conçu pour être léger et performant. Il est compatible avec de très nombreux langages de programmation : Python, R, Java, JavaScript, C++…
1.1 Fonctionnalités
- Auto-complétion : Aide à écrire du code plus rapidement et avec moins d’erreurs
- Coloration syntaxique : Améliore la lisibilité du code
- Débogage intégré : Facilite l’identification et la correction des erreurs
- Extensibilité : grâce à une vaste bibliothèque d’extensions disponibles sur le marketplace
- Configuration et outils : linters, formateurs de code…
Le but de cette fiche est de :
- vous permettre d’exécuter un programme python avec VS Code
- donner quelques astuces pour faciliter son utilisation
2 Paramétrage
2.1 Extensions
De très nombreuses extensions permettent d’améliorer votre utilisation de VS Code. Sur la version installée sur la VM ENSAI, vous pouvez trouver :
- Black Formatter
- Flake8
- isort
- Python Test Explorer
- …
- ❌ Désactiver l’extension Ruff (elle fait doublon avec Flake8)
Autres extensions interessantes :
- Better Comments
2.2 Formatage et Linting
- Un formateur est un outil qui va mettre en forme votre code pour que ce soit joli et lisible
- un linter est un outil qui va vous avertir si votre code n’est pas joli
- ex : ligne trop longue, espace manquant ou en trop…
Les extensions Black Formatter et Flake8 sont respectivement un formateur et un linter
2.3 Settings
Vous pouvez préciser le paramètrage à plusieurs niveaux :
- au niveau utilisateur (User)
- au niveau d’un dépôt (Workspace)
Le fichier .vscode/settings.json
contient du paramètrage qui va s’appliquer à tous les fichiers du dépôt.
Ce fichier contient par exemple les propriétés ci-dessous :
.vscode/settings.json
"flake8.args": [
"--max-line-length=100"
],
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.insertSpaces": true,
"editor.tabSize": 4
},
3 Première utilisation
Nous allons créer un dépôt local avec Git, puis ouvrir ce dépôt avec VSCode.
-
- Menu Terminal > New terminal (raccourci : CTRL + ù)
-
- Copiez cette commande :
mkdir -p /p/Cours2A/UE3_Remise_a_niveau
- Dans le terminal, faîtes clic droit (Coller) puis ENTREE
- Vérifiez que les dossiers sont bien créés, sinon créer les dossiers à la main
- Copiez cette commande :
-
- Positionnez-vous dans le dossier créé :
cd /p/Cours2A/UE3_Remise_a_niveau
git clone https://github.com/ludo2ne/ENSAI-2A-remise-a-niveau.git
- Positionnez-vous dans le dossier créé :
-
- Dans VSCode : File > Open Folder
- Sélectionnez le dossier
P:/Cours2A/UE3_Remise_a_niveau/ENSAI-2A-remise-a-niveau
créé précédemment - Yes i trust…
-
- Ouvrez le fichier
Python-POO/exemple/src/__main__.py
- Executez le fichier
- En haut à droite, cliquer sur l’icone en forme de triangle ▷
- Run python file in terminal
- Cela ouvre un terminal et exécute le fichier
- Ouvrez le fichier
4 Le terminal python
2 modes :
P:\Cours\Python\tp1>
- pour éxecuter en totalité un fichier python
- en cliquant sur le triangle ▷
- en tapant la commande
python bacasable.py
- taper
python
en ENTREE pour passer à l’autre mode
- pour éxecuter en totalité un fichier python
>>>
pour exécuter directement du code python- permet d’exécuter uniquement certaines lignes du fichier
- en cliquant sur une ligne puis SHIFT + ENTREE
- en sélectionnant plusieurs lignes puis SHIFT + ENTREE
- dans ce mode on peut aussi écrire directement du python dans le terminal
- taper
quit()
ou CTRL + Z pour retourner à l’autre mode
- permet d’exécuter uniquement certaines lignes du fichier
5 Python, VSCode et les packages
Imaginez que votre code est organisé de la manière ci-dessous
├───tp1
│ └───src
│ │ ├───vehicule
│ │ │ ├───velo.py
│ │ │ └───trottinette.py
│ │ ├───animal
│ │ │ ├───girafe.py │ │ │ └───ane.py
Si dans la classe Girafe, vous voulez créer un objet de la classe Velo, vous pouvez par exemple faire ceci dans le code de girafe.py :
- import de la classe Velo
- puis création d’un objet Velo
girafe.py
from vehicule.velo import Velo
class Girafe:
def __init__(self, nom, nom_moyen_transport):
self.nom = nom
= None
vehicule if nom_moyen_transport * "velo":
= Velo()
vehicule self.moyen_transport = vehicule
🚨 Cependant, il se peut que que VSCode et/ou le compilateur python n’apprécient pas ce genre d’imports et que vous rencontriez des erreurs du type le module velo n’existe pas
Comme solution de contournement, vous pouvez :
- en reprenant l’arborescence ci-dessus,
- dans le dossier code créez un dossier .vscode
- dans ce dossier .vscode, créer le fichier settings.json qui contient ceci :
{
"python.analysis.extraPaths": [
"./*"
],
"terminal.integrated.env.windows": {
"PYTHONPATH": "${workspaceFolder}/src",
},
"terminal.integrated.env.linux": {
"PYTHONPATH": "${workspaceFolder}/src",
},
"python.languageServer": "Jedi"
}
- puis fermez et redémarrez VSCode
- File > Open Folder >
C:/.../tp1/code
6 Afficher les variables d’environnement
printenv
echo $PYTHONPATH
echo $HOME