Utiliser Virtualenv avec Python avec Visual Studio Code dans Ubuntu

86

J'ai un projet Python et la navigation / la saisie semi-automatique fonctionne parfaitement dans les fichiers du projet. Je souhaite spécifier un virtualenv pour que la navigation / la saisie semi-automatique fonctionne avec les packages à l'intérieur de ce virtualenv.

J'ai essayé cela dans settings.py mais la navigation / la saisie semi-automatique ne fonctionne pas. Également en définissant "python.pythonPath":"~/dev/venvs/proj/bin/pythontué la navigation d'origine / la saisie semi-automatique.

{
    "editor.rulers": [80,100],
    "python.autoComplete.extraPaths": [
        "~/dev/venvs/proj",
        "~/dev/venvs/proj/lib"
     ]
}
Jesvin José
la source
un shebang comme celui-ci fonctionne aussi, si vous ne voulez pas jouer avec les paramètres: #! bin / python3
Alex R
youtu.be/6YLMWU-5H9o?t=550 ici Dan Taylor explique comment exécuter virtualenv dans vscode
test30
Pour la dernière version de Code, j'ai juste cliqué sur l'interpréteur python en bas à gauche, puis il y a eu la palette de commandes en haut au milieu, sélectionnez Entrer le chemin vers un interpréteur Python, puis sélectionnez Rechercher ... puis recherchez dans ~ / votre chemin venv / bin / python, j'ai python3.8
JCQian

Réponses:

96

Avec la dernière mise à jour de l'extension, tout ce que vous avez à faire est de spécifier simplement ce "python.pythonPath"qui suit. Les valeurs de "python.autoComplete.extraPaths"seront déterminées lors de l'exécution, mais vous êtes toujours libre d'y spécifier des chemins personnalisés.

N'oubliez pas de redémarrer VS Code une fois que les modifications nécessaires ont été apportées.

{
    "editor.rulers": [80,100],
    "python.pythonPath":"~/dev/venvs/proj/bin/python"
}
Don
la source
2
FWIW J'ai dû utiliser un chemin absolu au moins pour pylint
Kat
6
Voulez-vous dire dans les paramètres de l'espace de travail? Existe-t-il un moyen de configurer la préférence uniquement pour un sous-arbre de mon espace de travail?
yucer
3
Pouvez-vous faire cela par projet?
holms
1
Don ci-dessus a raison. Veuillez simplement vérifier le site Web de VS Code: code.visualstudio.com/docs/python/…
Ricardo Anjos
5
@holms yup, vous voulez modifier les paramètres de l'espace de travail ( .vscode/settings.json)
Atav32
91

Depuis septembre 2016 (selon la documentation du référentiel Github de l'extension ), vous pouvez simplement exécuter une commande à partir de vscode qui vous permettra de sélectionner l'interpréteur dans une liste générée automatiquement d'interprètes connus (y compris celui de l'environnement virtuel de votre projet).

Comment utiliser cette fonctionnalité?

  • Sélectionnez la commande Python: Select Workspace Interpreter(*) dans la palette de commandes (F1).

  • Après avoir sélectionné la commande ci-dessus, une liste d'interprètes découverts s'affichera dans une quick pickliste.

  • La sélection d'un interpréteur dans cette liste mettra automatiquement à jour le fichier settings.json .

(*) Cette commande a été mise à jourPython: Select Interpreter dans la dernière version de VSC (merci @nngeek).
Notez également que votre interpréteur sélectionné sera affiché sur le côté gauche de la barre d'état, par exemple Python 3.6 64 bits. Il s'agit d'un bouton sur lequel vous pouvez cliquer pour déclencher la fonction Sélectionner l'interprète.

Daniel F.
la source
3
triste chose, cela ne me permet pas d'ajouter un nouvel interprète à la liste ... est-ce encore possible?
Genuinefafa
@g Genuinefafa Je ne connais pas grand-chose à Code, mais dans la documentation du référentiel que j'ai liée, il est indiqué que les interprètes sont découverts en cherchant dans des chemins standard (/ usr / local / bin, / usr / sbin, / sbin), dans des environnements virtuels sous le projet actuel et les environnements Conda. Vous pourriez peut-être ajouter votre interprète à l'un de ces emplacements afin qu'il puisse le récupérer automatiquement. Mais je ne fais que deviner.
Daniel F.
C'est une bonne idée @DanielF. Je le résous mais en configurant manuellement les répertoires pointant vers l'environnement du projet. L' $PATHidée n'a pas fonctionné (c'est en fait ce qu'un workonscript devrait faire). Cela a été testé il y a quelques semaines, je ne sais pas si le résoudre dans les nouvelles versions.
Genuinefafa
4
Pour trouver votre virtualenv, python.venvPathdoit être défini.
Mahmoud Hanafy
2
Depuis décembre 2017 avec le code 1.18.1, la commande provient Python: Select Interpreterde la palette de commandes. python workspace
J'ai eu du mal
35

Très simple avec le dernier VSCode, si vous avez installé l' extension officielle Python pour VSCode

Shift+ Command+P

Type: Python: sélectionnez l'interpréteur

Choisissez votre environnement virtuel.

Site officiel

DingLi
la source
14
Malheureusement, cette commande ne répertorie pas les environnements virtuels locaux.
Antonin
@Antonin Je teste sur mon vscode sur la dernière version, ça marche. Êtes-vous sous mac ou autre système, et quelle est votre erreur?
DingLi
1
En effet sur un Mac, merci @DingLi, cela a fonctionné après la mise en place de ceci:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin
1
@Antonin pour les envs virtuels, voir la réponse de
ssword
2
Oui, je souhaite vraiment que vous, et tout le monde, arrêtez de dire «assez simple». Les environnements virtuels ne sont pas répertoriés, seuls les interprètes, version macOS 2019.6. Et c'est une question qui dit virtualenv, pas seulement les interpréteurs python. @ssword a la bonne réponse. Ou du moins, j'espère que cela apportera le reste de la configuration basée sur virtualenv, qui n'est PAS seulement l'exécutable python à utiliser.
JL Peyret
34

Avec la dernière extension Python pour le code de Visual Studio, il existe un paramètre venvPath:

// Path to folder with a list of Virtual Environments (e.g. ~/.pyenv, ~/Envs, ~/.virtualenvs).
  "python.venvPath": "",

Sur Mac OS X, accédez à Code > Preferences > Settingset faites défiler jusqu'à Configuration Python .

Chercher "python.venvPath: "", et cliquez sur le crayon sur le côté gauche pour ouvrir vos paramètres utilisateur. Enfin, ajoutez le chemin d'accès à l'emplacement de stockage de vos environnements virtuels.

Si vous utilisez virtuanenvwrapper, ou si vous avez mis tous vos paramètres d'environnement virtuel dans un seul dossier, ce sera celui qu'il vous faut.

Après avoir configuré "python.venvPath", redémarrez VSC. Ensuite, ouvrez la palette de commandes et recherchez "Python: Select Interpreter". À ce stade, vous devriez voir l'interpréteur associé à l'environnement virtuel que vous venez d'ajouter.

ssword
la source
13

Une autre façon consiste à ouvrir le VSC à partir d'un terminal avec le jeu virtualenv et devez effectuer F1 Python: Select Interpreteret sélectionner virtualENV requis

virtualENV

pm.calabrese
la source
8
Cela ne semble pas fonctionner pour moi. Je dois avoir le fichier de paramètres. Y a-t-il quelque chose qui me manque?
McKay
1
J'ai utilisé cette méthode avec succès mais j'ai dû faire le code -a.
YoFlynn
1
Cela m'a donné le bon interpréteur de python, mais il n'a pas trouvé le reste de mon venv. L'ajout de mon nom de répertoire venv "ve" à python.venvFolders l'a corrigé.
user1055568
1
Mon commentaire précédent était faux. J'avais d'autres problèmes que j'ai pris pour ne pas trouver venv.
user1055568
7

Réponse provisoire. J'ai mis le chemin absolu de l'exécutable de l'environnement virtuel python ainsi que les packages. J'ai ensuite redémarré le code VS.

J'essaie d'obtenir $ {workspaceRoot} pour éviter de coder en dur les chemins absolus, veuillez aider si vous avez réussi.

{
    "editor.rulers": [80,100],
    "python.pythonPath": "/home/jesvin/dev/ala/venv/bin/python",
    "python.autoComplete.extraPaths": [
        "/home/jesvin/dev/ala/venv/lib/python2.7",
        "/home/jesvin/dev/ala/venv/lib/python2.7/site-packages"
     ]
}
Jesvin José
la source
2
J'ai soulevé un problème sur github.com/DonJayamanne/pythonVSCode/issues/148
Jesvin Jose
4

J'ai pu utiliser le paramètre d'espace de travail demandé par d'autres personnes sur cette page.

Dans Préférences, ⌘ + P, recherchez python.pythonPathdans la barre de recherche.

Vous devriez voir quelque chose comme:

// Path to Python, you can use a custom version of Python by modifying this setting to include the full path.
"python.pythonPath": "python"

Cliquez ensuite sur l'onglet PARAMÈTRES DE L'ESPACE DE TRAVAIL sur le côté droit de la fenêtre. Cela fera en sorte que le paramètre ne s'applique qu'à l'espace de travail dans lequel vous vous trouvez.

Ensuite, cliquez sur l'icône en forme de crayon à côté de "python.pythonPath". Cela devrait copier le paramètre sur les paramètres de l'espace de travail.

Changez la valeur en quelque chose comme:

"python.pythonPath": "${workspaceFolder}/venv"
Charlie Le
la source
2

a) Modifiez le paramètre de chemin d'environnement virtuel par défaut de Visual Studio Code. Il s'appelle "python.venvPath". Vous faites cela en allant dans code-> settings et faites défiler vers le bas pour les paramètres python.

b) Redémarrer le code VS

c) Maintenant, si vous faites Shift + Command + P et tapez Python: Sélectionnez Interpreter, vous devriez voir la liste de vos environnements virtuels.

Ajay K
la source
1

Semble être (comme d'ici 2018.03) dans code-insider, une directive a été introduite appelée python.venvFolders:

  "python.venvFolders": [
    "envs",
    ".pyenv",
    ".direnv"
  ],

Tout ce dont vous avez besoin est d'ajouter le nom de votre dossier virtualenv.

holms
la source
1

Sur Mac OSX utilisant la version de code 1.34.0 (1.34.0), j'ai dû faire ce qui suit pour que VSCode reconnaisse les environnements virtuels:

Emplacement de mon environnement virtuel (nommé ml_venv):

/Users/auser/.pyvenv/ml_venv

auser@HOST:~/.pyvenv$ tree -d -L 2
.
└── ml_venv
    ├── bin
    ├── include
    └── lib

J'ai ajouté l'entrée suivante dans Settings.json: "python.venvPath": "/Users/auser/.pyvenv"

Redémarré l'EDI, et maintenant je pouvais voir l'interpréteur de mon environnement virtuel: entrez la description de l'image ici

b.sodhi
la source
L'utilisation d'un chemin absolu est importante. Cela a fonctionné pour moi. Merci
Alexander Suraphel
0

J'ai obtenu ça de Youtube Configuration de Python VS ... Venv

OK, la vidéo ne m'a pas vraiment beaucoup aidé, mais ... le premier commentaire ci-dessous (par la personne qui a posté la vidéo) a beaucoup de sens et est de l'or pur.

Fondamentalement, ouvrez le terminal intégré de VS. ensuitesource <your path>/activate.sh , de la manière habituelle, vous choisissez un venv à partir de la ligne de commande. J'ai une fonction bash prédéfinie pour trouver et lancer le bon fichier de script et cela a très bien fonctionné.

Citant ce commentaire YT directement (tout le crédit à aneuris ap ):

(vous n'avez vraiment besoin que des étapes 5 à 7)

1- Open your command line/terminal and type pip virtualenv.
2. Create a folder in which the virtualenv will be placed .
3. cd to the script folder in the virtualenv and run activate.bat (CMD).
4. deactivate to turn of the virtualenv (CMD).
5. open the project in VS Code  and use its built-in terminal to cd to the script folder in you virtualenv.
6. type source activates (in vs code I use the git terminal).
7. deactivate to turn off the virtualenv.

Comme vous pouvez le remarquer, il en parle activate.bat. Donc, si cela fonctionne pour moi sur un mac, et que cela fonctionne aussi sur Windows, il y a de fortes chances que ce soit assez robuste et portable. 😀

JL Peyret
la source