web-dev-qa-db-fra.com

VS Code Code Runner ne fonctionne pas avec virtualenvs

Je ne peux pas faire fonctionner l'extension Code Runner avec virtualenvs. Chaque fois que j'essaie d'exécuter du code qui importe une bibliothèque qui n'est installée que dans virtualenv et non dans l'installation globale Python, j'obtiens une erreur d'importation. L'exécution du même code exact dans le terminal fonctionne.

Je suis sur Windows 10 et j'ai installé Python 3.6.5.

L'erreur précise que je reçois est:

ModuleNotFoundError: No module named 'bs4'
16
slinden

J'ai également rencontré le même problème.

enter image description here la solution que j'ai trouvée la meilleure consiste simplement à ajouter cette ligne à vos paramètres d'utilisateur ou d'espace de travail (selon celle qui convient à vos projets):

"code-runner.executorMap": {
    "python": "C:\\Users\\adarsh_patel\\VisualCode\\env\\Scripts\\activate.bat && python -u",
}

vous devez entrer votre chemin virtualenv ou vous pouvez utiliser.

"code-runner.executorMap": {"python":"$pythonPath $fullFileName"}

enter image description here

enter image description here

j'espère que cela vous aide.

11
Adarsh

Une solution possible serait de définir le "code-runner.runInTerminal": true Dans les paramètres du code VS, ce qui est faux par défaut. Ce faisant, Code Runner exécutera le code dans le shell configuré à l'aide du paramètre "terminal.integrated.Shell.windows".

Après cela, exécutez votre script avec Code Runner. Cela ouvre maintenant un nouveau terminal, où l'environnement python que vous avez sélectionné à l'aide de VS Code Python: Select Interpreter Sera activé automatiquement, avant d'exécuter le code. (Si l'environnement n'est pas activé automatiquement , vous pouvez également le faire manuellement, assurez-vous de le faire dans la session de terminal qui a été ouverte par Code Runner.)

8
nkaenzig

Si vous regardez la vidéo this , vous pouvez voir la solution à 44,55 min si vous êtes un utilisateur Mac.

Vous devez définir votre $pythonPath. Cependant, vous n'avez pas besoin de définir $fullFineName. C'est déjà fait pour vous si Code Runner est installé

Ajoutez ceci au paramètre utilisateur:

"python.pythonPath": "/Users/danielaaa/miniconda3/envs/tf/bin/python",

"code-runner.executorMap": { "python": "$pythonPath -u $fullFileName"}

2
Daniel Ayk

j'utilise ces moyens:

je suggère d'abord de définir executerMap comme ceci:

  "code-runner.executorMap": {
   "python": "\"$pythonPath\" $fullFileName",
   },

en le définissant, chaque fois que vous changez votre version de l'interpréteur python dans vscode, le code-runner utilisera la même version pour exécuter votre code.

Une autre méthode que j'ai utilisée auparavant était:
en utilisant un code Shebang à la première ligne comme ceci:

#! .\venv\scripts\python.exe

code-runner est compatible avec la commande Shebang et il exécutera votre code avec la version de python que vous avez mentionnée en première ligne.

à la fin, je m'excuse s'il y a des erreurs grammaticales dans mon texte, je ne suis pas un locuteur natif anglais.

1
ghassemi.ehsan

J'ai ajouté la ligne Shebang au début du fichier pointant vers l'emplacement de mon interprète venv, par exemple.

#!/Users/username/Desktop/venv/bin/python

Le coureur de code semble très bien fonctionner.

1
Andrzej

J'ai activé CodeRunner et j'ai rencontré tous les mêmes problèmes mentionnés ci-dessus.

J'ai ensuite procédé à pip install requests le module qui dans mon cas était présent dans le venv mais pas globalement, même s'il était déjà présent et aurait dû fonctionner en théorie. Et voilà, cela fonctionne maintenant très bien.

Je suppose que le point à retenir est que CodeRunner ne reprend pas en cours de route si vous l'installez après la création du venv.

1
clickfrank

ajoutez ceci à vos paramètres d'utilisateur ou d'espace de travail

"code-runner.executorMap": {
        "python": "source $workspaceRoot/venv/bin/activate && python3 $fullFileName",
    },
"code-runner.runInTerminal": true
0
Max