63
votes

Comment configurer l'environnement virtuel pour Python dans VS Code?

Dans mon dossier de projet, j'ai créé le dossier venv.

python -m venv venv

Lorsque je dans VS Code exécutez la commande, select python interpreter mon dossier venv ne s'affiche pas. Je suis monté d'un niveau comme suggéré ici mais VS Code ne voit pas mon interprète virtuel.

Qu'est-ce que j'ai raté?


0 commentaires

12 Réponses :


1
votes

Avez-vous activé votre environnement? Vous pouvez également essayer ceci: vscode select venv


1 commentaires

Lorsque je lance activate dans le terminal cmd dans VS Code, il est activé. Cependant, je dois changer l'interpréteur dans l'interface graphique VS Code pour que mes importations soient reconnues.



88
votes

PS:

  • J'utilise vs code depuis un certain temps maintenant et j'ai trouvé un autre moyen d'afficher les environnements virtuels dans vs code.

  • Accédez au dossier parent dans lequel venv trouve via l'invite de commande.

  • Tapez le code . et entrez. [Travailler sur Windows et Linux pour moi.]

  • Cela devrait également montrer les environnements virtuels présents dans ce dossier.

Réponse originale

Je rencontre presque le même problème à chaque fois que je travaille sur VS-Code en utilisant venv. Je suis les étapes ci-dessous, j'espère que cela aide:

  1. Allez dans File > preferences > Settings .

  2. Cliquez sur Workspace settings de Workspace settings .

  3. Sous Files:Association , dans la section JSON: Schemas , vous trouverez Edit in settings.json , cliquez dessus.

  4. Mettez à jour "python.pythonPath": "Your_venv_path/bin/python" dans les paramètres de l'espace de travail. (Pour Windows): Mettez à jour "python.pythonPath": "Your_venv_path/Scripts/python.exe" dans les paramètres de l'espace de travail.

  5. Redémarrez VSCode en cas s'il n'affiche toujours pas votre venv.


10 commentaires

Mon fichier venv contient des dossiers Include, Lib and Scripts . J'ai mis à jour settings.json , mais pas de chance "python.pythonPath": "PrintPython\\venv\\Scripts\\python" . PrintPython est mon fichier de projet dans l'espace de travail Python. venv dossier venv est dans PrintPython .


@HrvojeT; Vous devez suivre ces étapes dans VSCode.


Bien sûr, je les ai suivis. Pas de chance.


Je suppose que vous utilisez Windows. Pour Windows, utilisez le chemin complet: "python.pythonPath": "c:/sam/venv/Scripts/python.exe" ou quel que soit votre venv. Utilisez ce lien pour référence: code.visualstudio.com/docs/python/environments


Ok, je l'ai fugué. Dans un dossier d'espace de travail nommé Python j'ai ajouté tous mes autres projets. Je devrais donc n'avoir qu'un seul venv pour le dossier d'espace de travail Python . J'ai supprimé le dossier Python de l'espace de travail et ajouté chaque sous-dossier dans le dossier Python en tant que projet d'espace de travail comme Project1 , Project2 etc. Dans ce dossier Project , j'ai créé l'environnement venv et modifié settings.json pour l'espace de travail avec ce "python.venvPath": "venv" . Maintenant, pour chaque nouveau projet, je vais créer un nouvel espace de travail et à l'intérieur de ce dossier se venv dossier venv qui sera automatiquement reconnu.


@HrvojeT: Super ..! Je ne sais pas si c'est la meilleure solution que vous avez mentionnée, mais c'est bien si cela fonctionne pour vous.


J'ai ajouté une réponse qui est simple et n'implique pas de modifier les fichiers de configuration


Oui, vous ne devriez pas avoir à vous donner autant de peine pour que VS Code reconnaisse votre environnement virtuel. Le dossier se trouve juste là dans le répertoire dans lequel vous avez ouvert VS Code. L'équipe VS Code devrait résoudre ce problème si elle souhaite vraiment prendre en charge Python. Cela ne peut pas être si difficile.


La mise à jour devrait être la section principale de la réponse imo


Si vous utilisez les paramètres JSON, vérifiez le fichier settings.json dans votre espace de travail. Mon vscode a ajouté automatiquement pythonPath , donc lors de sa modification globale, il n'a rien fait.



1
votes

J'ai eu le même problème et c'était parce que PowerShell n'était pas mis à jour. Parfois, Windows conserve la version 2. * et j'ai dû télécharger et installer manuellement la version 3. Une fois ce problème résolu, j'ai pu très bien utiliser les environnements virtuels.


1 commentaires

Qu'est-ce que PowerShell version 3 a ajouté / modifié qui a résolu le problème d'origine?



6
votes

J'avais le même problème jusqu'à ce que je découvre que j'essayais de rendre mon répertoire de projet et l'environnement virtuel identiques - ce qui n'est pas correct.

J'ai un répertoire \Code\Python où je stocke tous mes projets Python. Mon installation Python 3 est sur mon chemin.

Si je veux créer un nouveau projet Python (Project1) avec son propre environnement virtuel, alors je fais ceci:

python -m venv Code\Python\Project1\venv

Ensuite, la simple ouverture du dossier (Projet1) dans Visual Studio Code garantit que l'environnement virtuel correct est utilisé.


0 commentaires

2
votes

Ceci est un ajout à la réponse @Sam qui, bien que correcte, manque le fait que chaque fois que vous ouvrez un dossier dans le code de Visual Studio, il crée un dossier .vscode, mais ceux-ci peuvent être multiples, créés chaque fois que vous ouvrez éventuellement un répertoire. Le dossier .vscode contient des objets JSON qui contiennent des propriétés telles que "setting.json", dans lequel on déclare l'interpréteur à utiliser à ce niveau ".vscode" (reportez-vous à ceci pour plus de précisions Qu'est-ce qu'un 'espace de travail' dans VS Code? ) .

{
   {
     "python.pythonPath": "VirtualEnPath/bin/python3.6"
   }
}

Donc, potentiellement, vous pourriez ouvrir le code VS à un autre niveau dans l'environnement virtuel, cela crée un autre dossier .vscode qui assume comme répertoire Python ceux de la machine globale et donc avoir une telle erreur, et je n'ai rien à faire si l'environnement virtuel est activé ou non.

C'est bien ce qui m'est arrivé, j'ai en effet un dossier DjangoRESTAPI_GEN dans lequel j'ai initialement ouvert l'EDI et il a reconnu le chemin Virtual Env Python, quelques jours après que je l'ai ouvert au niveau où se trouve git, il en a donc créé un autre .vscode, qui a choisi l'interpréteur Python global, ce qui a fait que ma charpie dans l'environnement virtuel n'a pas été utilisée, et l'interpréteur d'environnement virtuel n'a même pas été affiché dans "select python interpreter". Mais comme écrit en ouvrant l'EDI au niveau où le .vscode qui a le settings.json avec le chemin correct, c'est le cas.

Une fois que vous avez défini le chemin correct dans le fichier setting.json et sélectionné l'interpréteur d'environnement virtuel, VS Code activera automatiquement le VE dans son terminal

entrez la description de l'image ici


0 commentaires

2
votes

Beaucoup ont mentionné la méthode python.pythonPath .

Une autre façon consiste à ajouter un envFile dans le launch.json comme ceci:

    {
        "name": "Run",
        "etc": "etc",
        "envFile": "${workspaceFolder}/venv"
    }


1 commentaires

C'est utile, ${workspaceFolder} - littéralement ce que je veux. Ne pensez pas que le chemin absolu a du sens si vous définissez un espace de travail pour un environnement virtuel, qui ne s'applique qu'au projet.



5
votes

J'ai résolu le problème sans changer le chemin python car cela ne me semblait pas être la bonne solution. La solution suivante a fonctionné pour moi, j'espère qu'elle fonctionne aussi pour vous :))

  1. Ouvrez cmd dans windows / shell sous Linux / Mac.
  2. Activez votre virtualenv (en utilisant la source activate / activate.bat / activate.ps1 si vous utilisez Power Shell)

    C:\Users\<myUserName>\Videos\myFolder>django-project\Scripts\activate.bat (django-project) C:\Users\<myUserName>\Videos\myFolder>

  3. Accédez au répertoire de votre projet et ouvrez-y vscode.

    (django-project) C:\Users\prash\Videos\myFolder\projects>code .

  4. dans VS Code, allez dans Fichier -> Préférences -> Paramètres (ne vous inquiétez pas, vous n'avez pas besoin d'ouvrir le fichier json)

  5. Dans la barre de recherche des paramètres, recherchez virtual / venv et appuyez sur Entrée. Vous devriez trouver ce qui suit dans la barre de recherche:

Python: Venv Folders Dossiers dans votre répertoire personnel pour rechercher les environnements virtuels (prend en charge pyenv, direnv et virtualenvwrapper par défaut).

  1. Ajoutez un élément, puis entrez le chemin des scripts de votre virtuanenv qui contient le fichier d'activation. Par exemple dans mon système, c'est:

    C:\Users\<myUserName>\Videos\myFolder\django-project\Scripts\

  2. Enregistrez-le et redémarrez VS Code.

  3. Pour redémarrer, ouvrez à nouveau cmd, accédez au chemin de votre projet et ouvrez vs code. (Notez que votre venv doit être activé dans cmd avant d'ouvrir vs code à partir de cmd)

Commande pour ouvrir vs code à partir de cmd:

code .

Comment configurer virtualenv dans le code VS


0 commentaires

1
votes

J'ai eu le même problème et la solution était assez simple:

"Si vous créez un nouvel environnement conda pendant que VS Code est en cours d’exécution, utilisez la commande Recharger la fenêtre pour actualiser la liste d’environnement affichée avec Python: Sélectionnez Interpréteur. Sinon, vous risquez de ne pas voir l’environnement. vous ne le voyez pas au début, attendez 15 secondes, puis réessayez d'utiliser la commande. "

C'est écrit sur le site Vscode

Remarque: pour recharger la fenêtre: ctrl + shift + p dans Vscode, puis écrire la fenêtre de rechargement


0 commentaires

2
votes

Il existe une extension VSCode appelée "Python Auto Venv" qui détecte et utilise automatiquement votre environnement virtuel s'il y en a un.


0 commentaires

39
votes

Avec une version plus récente de VS Code, c'est assez simple.

Ouvrez VS Code dans le dossier de votre projet.

Ensuite, ouvrez Python Terminal (Ctrl-Shift-P: Python: Créer un terminal)

Dans le terminal:

python -m venv .venv

vous verrez alors la boîte de dialogue suivante: entrez la description de l'image ici

cliquez sur Yes

Puis Python: Select Interpreter (via Ctrl-Shift-P)

et sélectionnez l'option (dans mon cas vers le bas)

Python 3.7 (venv) ./venv/Scripts/python.exe

Si tu vois

Activate.ps1 n'est pas signé numériquement. Vous ne pouvez pas exécuter ce script sur le système actuel.

vous devrez effectuer les opérations suivantes: https://stackoverflow.com/a/18713789/2705777

Pour plus d'informations, voir: https://code.visualstudio.com/docs/python/environments#_global-virtual-and-conda-environments


2 commentaires

Merci d'avoir fourni une réponse mise à jour. Cela devrait être considéré comme la nouvelle solution acceptée.


est le "." devant le "venv" exigent pour vsc de reconnaître automatiquement le dossier de l'environnement virtuel? Je nomme toujours le mien "venv" (pas de point au début). Merci.



0
votes

Dans vscode, sélectionnez le dossier et créez WS et cela fonctionnera bien


0 commentaires

0
votes

La question est de savoir comment créer un nouvel environnement virtuel dans VSCode, c'est pourquoi indiquer la solution Anaconda suivante peut ne pas être la réponse nécessaire à la question. C'est juste pertinent pour les utilisateurs d'Anaconda.

Créez simplement un venv en utilisant conda, voir ici . Ensuite, ouvrez VSCode et cliquez avec le bouton gauche sur l'interpréteur VSCode affiché dans VSCode en bas à gauche:

informations sur l'interpréteur vscode

Choisissez un environnement virtuel qui apparaît dans une liste déroulante de la fenêtre des paramètres, et vous avez terminé. Faites attention à la réponse de @RamiMa.


0 commentaires