Verwenden Sie Virtualenv mit Python mit Visual Studio Code in Ubuntu

85

Ich habe ein Python-Projekt und Navigation / Autocomplete funktionieren perfekt in Dateien im Projekt. Ich möchte eine virtuelle Umgebung angeben, damit Navigation / automatische Vervollständigung mit Paketen in dieser virtuellen Umgebung funktioniert.

Ich habe dies in settings.py versucht, aber Navigation / Autocomplete funktioniert nicht. Auch durch Einstellung "python.pythonPath":"~/dev/venvs/proj/bin/pythontötete die ursprüngliche Navigation / Autovervollständigung.

{
    "editor.rulers": [80,100],
    "python.autoComplete.extraPaths": [
        "~/dev/venvs/proj",
        "~/dev/venvs/proj/lib"
     ]
}
Jesvin Jose
quelle
Ein Shebang wie dieser funktioniert auch, wenn Sie sich nicht mit Einstellungen anlegen möchten: #! bin / python3
Alex R
youtu.be/6YLMWU-5H9o?t=550 hier erklärt Dan Taylor, wie man virtualenv in vscode ausführt
test30
Für die neueste Version von Code habe ich einfach auf den Python-Interpreter unten links geklickt, dann wurde oben in der Mitte die Befehlspalette angezeigt. Wählen Sie Pfad zu einem Python-Interpreter eingeben, dann Suchen ... und dann in ~ / your venv path / bin / python, ich habe python3.8
JCQian

Antworten:

96

Mit dem neuesten Update der Erweiterung müssen Sie lediglich "python.pythonPath"Folgendes angeben . Die Werte für "python.autoComplete.extraPaths"werden zur Laufzeit festgelegt, Sie können dort jedoch weiterhin benutzerdefinierte Pfade angeben.

Denken Sie daran, VS Code neu zu starten, sobald die erforderlichen Änderungen vorgenommen wurden.

{
    "editor.rulers": [80,100],
    "python.pythonPath":"~/dev/venvs/proj/bin/python"
}
Don
quelle
2
FWIW Ich musste zumindest für Pylint einen absoluten Pfad verwenden
Kat
6
Meinst du in den Arbeitsbereichseinstellungen? Gibt es eine Möglichkeit, die Einstellungen nur für einen Teilbaum meines Arbeitsbereichs festzulegen?
Yucer
3
Kannst du das pro Projekt machen?
Holms
1
Don oben ist richtig. Bitte überprüfen Sie einfach die Website von VS Code: code.visualstudio.com/docs/python/…
Ricardo Anjos
5
@holms yup, möchten Sie die Arbeitsbereich Einstellungen ( .vscode/settings.json)
Atav32
91

Ab September 2016 (gemäß der Github-Repo-Dokumentation der Erweiterung ) können Sie einfach einen Befehl in vscode ausführen, mit dem Sie den Interpreter aus einer automatisch generierten Liste bekannter Interpreter auswählen können (einschließlich desjenigen in der virtuellen Umgebung Ihres Projekts).

Wie benutze ich diese Funktion?

  • Wählen Sie den Befehl Python: Select Workspace Interpreter(*) aus der Befehlspalette (F1).

  • Bei Auswahl des obigen Befehls wird eine Liste der erkannten Interpreter in einer quick pickListe angezeigt .

  • Wenn Sie einen Interpreter aus dieser Liste auswählen, wird die Datei settings.json automatisch aktualisiert .

(*) Dieser Befehl wird aktualisiert , um Python: Select Interpreter(durch @nngeek) in der neuesten Version von VSC.
Beachten Sie außerdem, dass Ihr ausgewählter Interpreter auf der linken Seite der Statusleiste angezeigt wird, z. B. Python 3.6 64-Bit. Dies ist eine Schaltfläche, auf die Sie klicken können, um die Funktion "Interpreter auswählen" auszulösen.

Daniel F.
quelle
3
Leider kann ich der Liste keinen neuen Dolmetscher hinzufügen ... ist das überhaupt möglich?
Echtfafa
@genuinefafa Ich weiß nicht viel über Code, aber in der von mir verlinkten Repo-Dokumentation heißt es, dass die Interpreter in Standardpfaden (/ usr / local / bin, / usr / sbin, / sbin) und virtuellen Umgebungen unter gefunden werden das aktuelle Projekt und die Conda-Umgebung. Vielleicht können Sie Ihren Dolmetscher an einem dieser Orte hinzufügen, damit er ihn automatisch abholt. Aber ich rate nur.
Daniel F.
Das ist eine gute Idee @DanielF. Ich löse es, richte aber manuell die Verzeichnisse ein, die auf die Projektumgebung verweisen. Die $PATHIdee hat nicht funktioniert (eigentlich workonsollte ein Skript dies tun). Dies wurde vor einigen Wochen getestet, nicht sicher, ob das Problem in neuen Versionen gelöst werden kann.
Echtfafa
4
Um Ihre virtuelle Umgebung zu finden, python.venvPathmuss eingestellt werden.
Mahmoud Hanafy
2
Ab Dezember 2017 mit Code 1.18.1 stammt der Befehl Python: Select Interpreteraus der Befehlspalette. python workspace
Kämpfte
34

Ganz einfach mit dem neuesten VSCode, wenn Sie die offizielle Python-Erweiterung für VSCode installiert haben

Shift+ Command+P

Typ: Python: Wählen Sie Interpreter

Wählen Sie Ihre virtuelle Umgebung.

Offizielle Seite

DingLi
quelle
12
Leider kann dieser Befehl keine lokalen virtuellen Umgebungen auflisten.
Antonin
@Antonin Ich teste auf meinem vscode auf der neuesten Version, es funktioniert. Sind Sie in Mac oder einem anderen System und was ist Ihr Fehler?
DingLi
1
In der Tat auf einem Mac, danke @DingLi, es hat funktioniert, nachdem dies eingerichtet wurde:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin
1
@Antonin für die virtuellen Envs, siehe die Antwort des Schwertes
carton.swing
2
Ja, ich wünschte wirklich, Sie und alle anderen hätten aufgehört, "ganz einfach" zu sagen. Virtuelle Umgebungen werden nicht aufgelistet, nur Dolmetscher, MacOS-Version 2019.6. Und dies ist eine Frage, die virtualenv sagt, nicht nur Python-Interpreter. @ssword hat die richtige Antwort. Zumindest hoffe ich, dass der Rest der auf virtualenv basierenden Konfiguration verfügbar ist, bei der es sich NICHT nur um die ausführbare Python-Datei handelt.
JL Peyret
34

Mit der neuesten Python-Erweiterung für Visual Studio-Code gibt es eine venvPath-Einstellung:

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

Gehen Sie unter Mac OS X Code > Preferences > Settingszu Python-Konfiguration und scrollen Sie nach unten .

Suchen "python.venvPath: "",Sie nach dem Stift auf der linken Seite und klicken Sie darauf, um Ihre Benutzereinstellungen zu öffnen. Fügen Sie abschließend den Pfad hinzu, in dem Sie Ihre virtuellen Umgebungen speichern.

Wenn Sie virtuanenvwrapper verwenden oder alle Einstellungen für die virtuelle Umgebung in einem Ordner gespeichert haben, ist dies die richtige für Sie.

"python.venvPath"Starten Sie VSC nach der Konfiguration neu. Öffnen Sie dann die Befehlspalette und suchen Sie nach "Python: Select Interpreter". Zu diesem Zeitpunkt sollte der Interpreter angezeigt werden, der der gerade hinzugefügten virtuellen Umgebung zugeordnet ist.

ssword
quelle
13

Eine andere Möglichkeit besteht darin, den VSC von einem Terminal aus zu öffnen, auf dem virtualenv festgelegt ist, F1 Python: Select Interpreterund die erforderliche virtualENV auszuführen und auszuwählen

virtualENV

pm.calabrese
quelle
8
Das scheint bei mir nicht zu funktionieren. Ich muss die Einstellungsdatei haben. Fehlt mir etwas?
McKay
1
Ich habe diese Methode erfolgreich angewendet, musste aber Code -a ausführen.
YoFlynn
1
Dies brachte mir den richtigen Python-Interpreter, fand aber den Rest meines Venv nicht. Das Hinzufügen meines venv-Verzeichnisnamens "ve" zu python.venvFolders hat das Problem behoben.
user1055568
1
Mein vorheriger Kommentar war falsch. Ich hatte andere Probleme, die ich für falsch hielt, weil ich kein Venv gefunden hatte.
user1055568
7

Vorläufige Antwort. Ich habe den absoluten Pfad der ausführbaren Python-Datei der virtuellen Umgebung angegeben und auch die Pakete. Ich habe dann VS-Code neu gestartet.

Ich versuche, $ {workspaceRoot} zu erhalten, um das Hardcodieren absoluter Pfade zu vermeiden. Bitte helfen Sie, wenn Sie erfolgreich waren.

{
    "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 Jose
quelle
2
Ich habe ein Problem unter github.com/DonJayamanne/pythonVSCode/issues/148
Jesvin Jose
4

Ich konnte die Arbeitsbereichseinstellung verwenden, nach der andere Personen auf dieser Seite gefragt haben.

Suchen Sie python.pythonPathin den Einstellungen ⌘ + P in der Suchleiste nach.

Sie sollten etwas sehen wie:

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

Klicken Sie dann rechts im Fenster auf die Registerkarte WORKSPACE SETTINGS. Dadurch wird die Einstellung nur auf den Arbeitsbereich angewendet, in dem Sie sich befinden.

Klicken Sie anschließend auf das Stiftsymbol neben "python.pythonPath". Dies sollte die Einstellung über die Arbeitsbereichseinstellungen kopieren.

Ändern Sie den Wert in:

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

a) Ändern Sie die Standardeinstellung für den virtuellen Umgebungspfad von Visual Studio Code. Es heißt "python.venvPath". Gehen Sie dazu zu Code-> Einstellungen und scrollen Sie nach unten, um die Python-Einstellungen anzuzeigen.

b) Starten Sie den VS-Code neu

c) Wenn Sie nun Umschalt + Befehl + P ausführen und Python eingeben: Wählen Sie Interpreter. Die Liste Ihrer virtuellen Umgebungen sollte angezeigt werden.

Ajay K.
quelle
1

Scheint (wie bis 2018.03) in Code-Insider zu sein, wurde die Direktive python.venvFolders eingeführt:

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

Sie müssen lediglich den Namen Ihres virtualenv-Ordners hinzufügen.

holms
quelle
1

Unter Mac OS X mit Code Version 1.34.0 (1.34.0) musste ich Folgendes tun, damit VSCode die virtuellen Umgebungen erkennt:

Speicherort meiner virtuellen Umgebung (mit dem Namen ml_venv):

/Users/auser/.pyvenv/ml_venv

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

Ich habe den folgenden Eintrag in Settings.json hinzugefügt: "python.venvPath": "/Users/auser/.pyvenv"

Die IDE wurde neu gestartet, und jetzt konnte ich den Interpreter in meiner virtuellen Umgebung sehen: Geben Sie hier die Bildbeschreibung ein

b.sodhi
quelle
Absolute Pfadangelegenheiten verwenden. Das hat bei mir funktioniert. Danke
Alexander Suraphel
0

Ich habe dies von Youtube erhalten. Einrichten von Python VS ... Venv

OK, das Video hat mir wirklich nicht viel geholfen, aber ... der erste Kommentar unter (von der Person, die das Video gepostet hat) macht sehr viel Sinn und ist pures Gold.

Öffnen Sie grundsätzlich das integrierte VS-Terminal. Dann source <your path>/activate.shwählen Sie wie gewohnt einen Venv über die Befehlszeile aus. Ich habe eine vordefinierte Bash-Funktion, um die richtige Skriptdatei zu finden und zu starten, und das hat einwandfrei funktioniert.

Diesen YT-Kommentar direkt zitieren (alle Aneuris ap ):

(Sie brauchen wirklich nur die Schritte 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.

Wie Sie vielleicht bemerken, spricht er darüber activate.bat. Wenn es für mich auf einem Mac und auch für Windows funktioniert, ist es wahrscheinlich ziemlich robust und portabel. 😀

JL Peyret
quelle