Session du 30 mai 2024 à 21h30
Veille & Discussions
Outils & IDE
DevOps & Environnement
Librairie Standard & Modules
Configurer VS Code pour python
Comment bien configurer VSCode pour Python (ouvert aux débutants).
00:00:00 :Désolé, c'est commencé un peu tard.J'espère que vous avez regardé les scopes.Donc, j'ai essayé de repartir le plus possible des zéros.Pour utiliser les scopes, il faut d'abord avoir un dossier, je ne sais pas,et donner un nom.
00:00:25 :Moi, j'ai bien glissé dedans, mais on peut l'ouvrir aussi à partir de la base code.Voilà, mon dossier est ouvert, il n'y a rien dedans.
00:00:34 :Donc, on va commencer avec un plan.Moi, j'avoue, je serais plus à l'aise de ne pas passer en mode présentation,si il y a des fautes d'adaptation qui sont soulignées, mais je ne peux pas.
00:00:47 :Je sais que j'avais prévu plein de choses, mais j'ai essayé de me concentrer juste sur base code,et les problèmes de vogueur ou de action, c'était finalement hors sujet.
00:01:00 :Et donc, je me suis concentré sur ce qui était uniquement lié à base code,mais bon, je ne peux pas tout faire non plus.On va essayer de tenir le temps.
00:01:08 :D'abord, dans un premier temps, on va essayer de voir comment fonctionnent les environnements virtuels.Là, je regardais les salons, il y avait des gens qui avaient des problèmes,c'est-à-dire qu'ils l'avaient créé, mais ça ne marchait pas, donc c'est arrivé.
00:01:22 :Les problèmes d'avoir, qu'est-ce que c'est le Python base, on verra ça.En tout cas, ce n'est pas aussi simple à gérer avec le base code que Pisha.
00:01:33 :Le fichier setting.json, qui est très intéressant, ça confie le marché original.Les extensions qu'on peut mettre dedans, comment faire du débrouillage, ce qui n'est pas du tout évident.
00:01:47 :Faire des tests unitaires avec pittest, un petit test, moi j'aime bien pittest, et divers raccourcis.On va commencer, si vous avez des questions, déjà, si vous n'avez pas installé, c'est bon.
00:02:03 :L'environnement virtuel.Donc, créer un environnement virtuel.Déjà, on peut ouvrir un terminal, contrôle shift U, ou terminal, nouveau terminal,et ça nous donne directement le terminal au dossier où on est.
00:02:24 :Ça crée un environnement virtuel.Et, si on a de la chance, il se trouve que base code propose avec une fenêtre d'aide là,si on veut le mettre dans le favoris.
00:02:44 :Voilà, il ne le fait pas.Il y a de l'argent, c'est parce qu'il ne détecte pas qu'on est sur un projet Python.Donc, je vais créer un gmn.py.
00:02:54 :Là, je fais un gmn.py, et il me demande est-ce que je veux l'application extension.Ce serait pas mal de l'avoir, ouais.Je peux parler de l'extension après, mais là, je n'en ai aucune.
00:03:04 :S'il propose d'installer une extension pour Python, ce serait pas mal de le faire.Ça nous permet d'installer Pylance, qui va lire le code Python automatiquement,si j'en sais des erreurs, et un outil debugging,et d'autres choses.
00:03:25 :Voilà.C'est intéressant de recharger cette fenêtre, à ce moment-là,pour qu'elle s'active.Je parle d'environnement virtuel.Là, par exemple, comme je l'ai créé sans avoir de fichier Python,il n'a pas détecté Python, et on a absolument rien à faire que d'utiliser un environnement virtuel.
00:03:49 :Il ne l'a pas détecté, il ne m'a rien proposé.Étonnamment, il l'a quand même mis.C'est pas de chance.Donc, on sait qu'il y a une bulle d'aide qui dit« Vous avez créé un environnement virtuel, est-ce que vous voulez l'activer ? »
00:04:09 :« Vous voulez l'activer ? »Comment elle est vite ?Désolé, d'ici-là, j'étais mi-bué, parce qu'il y avait trop de bruit.Pour le mettre manuellement, je pourrais entrer le pass du Python paramètre.
00:04:36 :Là, par exemple, je suis dans mon dossier, mon PAND,je vais aller chercher dans les scripts de Python.exe.Là, j'ai bien configuré mon environnement virtuel,et il sait que je travaille dans mon environnement virtuel.
00:04:53 :Ça sert principalement...Par exemple, si je tricke dans un truc,j'ai pas son environnement virtuel pour faire ça,mais ça sert principalement quand on appuie sur le bouton « Lecture » en haut.
00:05:08 :Sinon, ça lance l'ensemble de Python avec l'environnement virtuel qui est en haut,celui qui est intégré dans le script.Si vous voulez l'écriver, si vous utilisez l'environnement du terminal,ça sera pas forcément la même chose.
00:05:24 :Là, je l'ai activé, donc ça sera la même chose.Bon, voilà.Ensuite, c'est à peu près tout pour l'environnement virtuel.C'est le bouton qui est en bas, en droite.
00:05:41 :Si vous avez de la chance et que vous avez déjà un Python,il le propose lui-même de l'activer.Moi, je l'ai activé sans le proposer.
00:05:49 :Ça va pour vous ?Tu aurais une petite question ?Qu'est-ce qui est l'avantage d'un environnement virtuel ?L'avantage d'un environnement virtuel,c'est qu'on va pouvoir faire des dépendances.
00:06:02 :Par exemple, là, j'aimerais bien essayer NumPy.Par exemple, je vais faire un MNBoard.Voilà Studio.Je vais appuyer sur Lecture.Voilà, c'est NumPy.Je vais faire qu'il m'installe NumPy.
00:06:35 :Installer NumPy, simplement.Ça permet d'installer des librairies SRD,des librairies SRD d'environnement virtuel.Tu vas me dire, pourquoi pas installer la librairie SRDsur le Python global, peut-être ?
00:06:56 :Par exemple, là, si je fais Pythonet que j'importe NumPy,tu vas me dire, je ne connais pas NumPy.Là, c'est avec mon Python global de mon PC,dans lequel j'ai créé l'environnement virtuel.
00:07:13 :Mais si dans celui-là,où j'ai dans mon environnement virtuel,je veux faire import NumPy,maintenant, je le connais.L'intérêt, c'est d'avoir aussi des environnements isolés.
00:07:26 :Par exemple, si tu veux faire un code,tu ne peux pas forcément avoirtoutes les librairies que tu manges installéesdans ton environnement virtuel.Quand tu ouvres un déployé en production,ce sera trop lourd,et ça te coûtera cher en ressources.
00:07:38 :Tu veux juste le minimum.L'idée, c'est de travailler dans un environnement isoléoù tu as juste les librairies minimumque tu as besoin pour chaque projet.
00:07:45 :OK, super. Merci beaucoup.Là, par exemple, si je me lance comme ça,il capte qu'il y a NumPy.Il arrive à calculer mon NumPy.D'ailleurs, moi, j'ai un bug avec mon VS Code.
00:07:59 :C'est que mon terminal, là,si je fais NumPy,malgré qu'il n'est pas entre parenthèses,il est quand même dans l'environnement.Tu vois, parce que j'ai montréque dans mon global, il n'y a pas NumPy.
00:08:15 :Et pourtant, là, il n'y a pas écritque l'environnement est activé,et il détecte quand même NumPy.Mais je pense que moi,j'ai un bug avec mon VS Code.
00:08:23 :D'ailleurs, j'ai eu un message d'erreur une fois.Il m'a dit, t'inquiète,t'es dans ton environnement,mais ça ne s'est pas écrit.Non, c'est quand même, t'inquiète.
00:08:31 :Par contre, si je fais une liste,là, malgré qu'il n'y a pas écrit 1,on voit qu'il y a NumPy.Et si je le mets dans mon global...
00:08:38 :Alors, si je peux me permettre,si t'es dans ton environnement,regarde en bas à droite.En bas à droite ?3.12.2, et t'as le V en haut.
00:08:52 :Ouais, mais pas dans mon terminal.Moi, je sais que j'ai exactement la même chose que toi.C'est-à-dire qu'à partir du moment où il est en bas à droite,il considère que je suis toujours dans le terminal.
00:09:00 :Tu vois, je m'attends à avoir ça,pour montrer que je suis dans mon environnement.Et il ne me le met pas,mais pourtant, je suis dans mon coin.
00:09:07 :J'ai exactement la même chose.Bon, je pense que c'est un bug,mais en tout cas, je suis dans mon environnement.C'est peut-être pas par défaut le casde tous les VS Codes, par contre.
00:09:18 :On verra plus tard comment configurerquand ce n'est pas le cas.C'est dans la partie suivante.Je parle du setting.Ensuite, problème d'endroit.Ce qui va se passer par défaut,c'est que tout n'est pas configuré dans VS Code.
00:09:34 :Donc là, ça va, j'ai un fichier main.py.Il n'y aura absolument jamais de problèmeavec un seul fichier.Il y aura des problèmes quand je vais faire,quand même, voir, séparer mon codeet faire mes dossiers et mes sous-titres.
00:09:46 :Par exemple, si je me dis,bon, ok, un main.py,mais moi, j'aimerais bien que mon main.py,il soit dans App.Et j'aimerais bien que dans App,j'ai des modules,et que dans mon dossier module,j'ai un module.
00:10:02 :Main.py, petit condition.Pardon.Petite condition.Voilà, super.C'est une fonction magnifique.Comment je fais pour utilisercette fonction dans le main ?C'est cette fonction-là,qui devrait exister.
00:10:30 :Donc VS Code, il propose,au passage de la souris,un clic fixe d'importer la fonction.Ok, je clique, je suis là,App, Module, Module.Je lance.
00:10:42 :Voilà.C'est un module qui s'appelle App.Je vais essayer ça.Là, il comprend.Donc, je suis au niveau de App.Je vais lancer mon fichier au niveau de App.
00:11:02 :Au niveau de App,il arrive à aller à Module,dans le fichier Module,et comprendre la fonction.Par contre, si je lui dis,j'imagine que je suis au niveaude mon dossier de travail,il n'arrive pas à remonter d'un bordà Module, Module,Module, Module, Module,pour retrouver la fonction.
00:11:21 :Ok.Ça peut être un problème.En tout cas, ça l'est pour moiet pour d'autres.Si je fais un dossier sub-module,et que dans ce dossier sub-module,je crée cette imagination,qui crée une fonction,ok,et que je voudrais, disons,l'utiliserdans le module.py,
00:12:00 :ou même utiliser celle-là.Ça serait pas mal, en vrai,d'utiliser celle-là.Je reviens dans mon sub-module,enfin, je ne vais même pas faire ça.Je vais laisser ça changer.
00:12:08 :Dans cela, je reviens après la fonctionque j'ai créée dansle module tout à l'heure.Je vais essayer l'import qu'il me propose.L'import qu'il me propose ne marche pas.
00:12:22 :Je vais essayer l'import de tout à l'heurequi marchait dans main.Ça ne marche pas.Je vais tenter ça.Ça ne marche pas.Je vais tenter un point.
00:12:33 :Ça ne marche pas.Je vais tenter un autre point.Ça ne marche pas.Vous voyez qu'il y a un problèmeavec les imports.C'est vraiment pas bon.
00:12:44 :Est-ce que j'ai proposé une solutionà ce niveau-là ?Non, pas encore.Vous voyez que là,il y a des problèmesavec les dossiers et les sous-dossiers.
00:12:56 :On pourrait le résoudre...On pourrait le résoudre...On va passer directement à la partie suivante.On passe directement à la partie suivante.Dans cette situation,en fait, il s'agit d'un problème de Python Pass.
00:13:14 :C'est-à-dire qu'il ne gère pas du tout.Par défaut, en tout cas.Il considère que le Python Passest à l'endroit où on lance le bouton lecture.
00:13:25 :Désolé pour le bruit.Je ne sais pas si vous l'entendez.Vous ne l'entendez pas.Ce qu'on va faire,c'est faire en sortede faire comme me propose mon base code.
00:13:43 :C'est-à-dire que par défaut,lui, il aimerait bienm'apporter tous mes modulesdepuis la racineet de remonter le cheminà puis module,puis module,puis module,puis module,puis module,puis module,et retrouver ma fonction.
00:14:00 :C'est ce que propose le base code.Je ne sais pas si c'est par défautqu'il propose ça,mais peut-être que parce que moi,il a l'habitude.
00:14:07 :En tout cas,ce serait la meilleure manière de le faire.Le problème,c'est qu'actuellement,par défaut,si je suis dans mon sub-menu,puis le put-en-facese trouve dans le sub-menu.
00:14:17 :Je ne sais même pas commentfaire en put-en-face.Avec Windows,comment configurer la basedans le regard de put-en-face.Je vais essayer de regarder ça.
00:14:30 :Je vais demander à cette GPT.Configurerput-en-face.Une variante d'environnement.Sur Linux,c'est facile.Il faut faire export put-en-faceet on met ce qu'on veut.
00:14:55 :Mais je ne me souviens plusde la commande sur Windows.Je crois que c'est 7 put-en-face.Je vais essayer.7 put-en-face.Égaleà 7X.Je ne comprends pas.
00:15:17 :Mais 7Xput-en-face.J'ai trouvé la valeur.Ça va être30.C'est à l'endroit où je suis.La réussite.Et si maintenant,je lance mon fichierdans le sub-menu,je vais voir.
00:15:35 :Système module.Système module.Système module.Je ne comprends pas.De toute façon,ce n'est pas une bonne solution.Il y a moyen de faire ça,de configurer le put-en-face.
00:15:56 :De toute façon,même si vous faites ça,le bouton lecture ne captera pasqu'il y a le put-en-faceconfiguré.Une autre manière de faire,qui n'est pas vraiment ouf,non plus,c'est d'allermodule put-en-facedirectement en put-en-face.
00:16:12 :Donc, on peut importer un modulequi avait 6et qui avait 6.On va faire6.append.6.append.Donc, append.Il faudrait,pour le niveau du sub-module,je vais apporter un autre module.
00:16:31 :On pourrait en faireune passible.On pourrait faireun OS,une passible.Je vais le faire.Donc,le but,c'est d'avoirla directorie.Pour l'avoir,on peut faire ça.
00:16:51 :Donc,le pass du fichier actuel,on le réserve,ça veut dire qu'on obtientle pass absolu.Et,par en trois,alors,le premier parent,c'est ce module.
00:17:04 :Donc, là, c'est 0.Le deuxième parent,c'est lui,1.Et là, on sera au parent 2.Donc, c'est bon.Donc, a priori,si on fait ça,ça ajouteau put-en-facela directorie.
00:17:22 :Et du coup,normalement,il devrait reconnaîtrele chemin d'accord.Donc, le put-en-facede parent 3.Donc,c'est bon.Donc,par l'autre côté,c'est le problème.
00:17:37 :Ouais,c'est ça.C'est un pincet,vous savez,si ça marche,c'est bon.Je suisà ce module.Parent 0,c'est lui.Parent 1,parent 2.
00:18:04 :Parent 1,c'est lui.Parent 2,c'est lui.Et à partir de là,on faitpass,module.Je ne sais pas.Bon,OK.Deuxièmement,regarde,c'est comme ça qu'il marche,normalement.
00:18:26 :Mais,c'est de toute façonpas la bonne solutionque j'ai préférée.Elle est assez horribleet si vous faites ça,en plus,ça sera vraiment galèreparce que le nombredu parent,d'ailleurs,je galère moi-même.
00:18:38 :Il sera tout le temps différentselon où vous êteset s'il y a des modulesqui importent d'autres modules,ça veut direque vous avezplein de trucsdans votre placeque vous avez à ajouteret c'est vraimentpas ouf.
00:18:49 :Et il y a tellementde chosesque j'aime tout le temps.OK.Ce qu'on veut,c'est avoirle python pass ici.Pour faire ça,on va rentrertout de suitedans le setting.json.
00:19:00 :La première partie,c'est l'ajoutdu python passet ça va êtreça la bonne solution.Enfin,celle que je préfèreen tout cas,c'est d'avoirla config du python passdirectementde l'Orgasm Code.
00:19:12 :On peut faire aussid'autres chosesqui sont très simplescomme demanderque vous portezle python passdirectementdans l'Orgasm Code.On peut faire aussid'autres chosescomme demanderque votre codesoit reformatéà organiser les imports.
00:19:26 :Il y en a plusieurs.On les metdans le bon ordreautomatiquement.On peut faire en sorteque si votre environnementvirtuel ne s'active pasautomatiquement,on va devoirforcer qu'il s'activeautomatiquement.
00:19:37 :On peut choisirdes actions à ce grade.Par exemple,là vous voyez,il y a des fichiers.Moi,je n'aime pas avoirpicage,ça me gêne.
00:19:46 :Je n'ai pas forcémentenvie de voir tout çanon plus.C'est des trucsque je n'ai pas enviede voir.On peut gérerce qu'on voitou ce qu'on ne voit pas.
00:19:55 :On voitle terrain un peu lourd,c'est-à-dire,par exemple,pour l'entreprise,ça se fait beaucoupd'erreurs.Il y a des formateurscomme Blackqui empêchentvotre codede dépasser88 caractères.
00:20:08 :Donc,vous pouvez mettreune lignelà,verticalepourmatérialisercette limite.Il y aaussi desfichierspourfairesens.On vacréericiun dossierà la racine.
00:20:28 :Dans ce dossier,on va créerun fichierqui nous donneet on vapouvoir mettredes configurations.La premièreque j'aimerais bienavoir,c'estterminé.
00:20:40 :Donc,on vamettreterminélà.Donc,on vamettreenlà.Là,ça dépendde votreOS.Moi,je suissous Windowset on peutmettrece quevous voulez.
00:21:01 :Moi,ce qui m'intéresse,c'est quej'aimerais bienque ce quim'intéresse,ce soitleWorkspaceRegard.C'estdéjàpas mal.Donc,on vamettrececi.
00:21:18 :Bon,déjà,je vais testerça.Alors,il y a destrucs qu'il fautfaire.C'est que,par défaut,il faut relancerdes stones pourqu'ils prennent encompte lesmodifications desettings.
00:21:34 :Donc,en allantlà-haut,on peutfairecommandepaletteou alorsjuste enhaut.Et vousmettezle nomde lasolution.Donc,on vamettrele nomde lasolution.
00:21:55 :Je penseque c'estbon.Il faut peut-êtrefaire des recherches.Moi,je l'ai par défaut,mais si voustapezreloadWindows,ça évited'appuyersur la croixet derelancer.
00:22:11 :Maisnormalement,si je faisça,ça ne marchepas.C'estchiant.Je vaisremettre un petitterminal.Comme je l'ai ouverttout à l'heure,il n'a paspu encombrer.
00:22:35 :C'est bizarre.J'ai déjàma fonctionet dansle viewprompt,hop.De toute façon,ça vaaller.Je vaisessayer derétablirleviewprompt.
00:22:52 :Je vaisessayer derétablirla fonctionet derelancerleterminal.Iln'y arien,je vaislerelancer.Je vaisremettreun petitterminalpourlafonction.
00:23:14 :Il y aun autreproblème.Depuis toutà l'heure,je n'arrive àrien.Je ne voispas quoi.Voilà.Lemoduleestprêt.C'estabsolumenttrèscertain.
00:23:32 :Je vaislerelancer.Je vaislerelancer.Je vaislerelancer.Je vaislereplacerpar uneautre fonction.Je vaisessayer des'éparpillerde cettefonction.
00:23:51 :Je nesais pascommentje vaislecouper.Je vaisessayer deremettreuneévaluepourcelui-ci.Je vaislereplaceravecuneévaluepourceux-ci.
00:24:12 :Je vaisle couper.Je vaisle remettreà l'intérieur.Commeonl'a vu,on vapouvoirremettreune nouvelleévalue dansnotrefonction.Je vaisprendrel'équalisetouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttout
00:24:53 :touttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttout
00:25:44 :touttouttouttouttouttoutdutouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttouttoustoustoustoustoustoustoustoustoustoustoustoustoustoustoustoustoustoustoustoustoustous
Aucune occurrence trouvée pour « ».