Używaj Virtualenv z Pythonem z Visual Studio Code w Ubuntu

86

Mam projekt w Pythonie i nawigacja / autouzupełnianie działa idealnie w plikach w projekcie. Chcę określić virtualenv, aby nawigacja / autouzupełnianie działała z pakietami wewnątrz tego virtualenv.

Próbowałem tego w settings.py, ale nawigacja / autouzupełnianie nie działa. Również ustawienie "python.pythonPath":"~/dev/venvs/proj/bin/pythonzabiło oryginalną nawigację / autouzupełnianie.

{
    "editor.rulers": [80,100],
    "python.autoComplete.extraPaths": [
        "~/dev/venvs/proj",
        "~/dev/venvs/proj/lib"
     ]
}
Jesvin Jose
źródło
taki shebang również działa, jeśli nie chcesz bawić się ustawieniami: #! bin / python3
Alex R
youtu.be/6YLMWU-5H9o?t=550 tutaj Dan Taylor wyjaśnia, jak uruchomić virtualenv w vscode
test 30
W przypadku najnowszej wersji kodu po prostu kliknąłem interpreter języka Python w lewym dolnym rogu, a następnie pojawiła się paleta poleceń w górnej środkowej części, wybierz Wprowadź ścieżkę do interpretera Pythona, a następnie wybierz Znajdź ... a następnie znajdź w ~ / twoja ścieżka / bin / python, mam
python3.8

Odpowiedzi:

96

W przypadku najnowszej aktualizacji rozszerzenia wszystko, co musisz zrobić, to określić "python.pythonPath"co następuje. Wartości "python.autoComplete.extraPaths"zostaną określone w czasie wykonywania, ale nadal możesz określić w nich ścieżki niestandardowe.

Pamiętaj, aby ponownie uruchomić VS Code po wprowadzeniu niezbędnych zmian.

{
    "editor.rulers": [80,100],
    "python.pythonPath":"~/dev/venvs/proj/bin/python"
}
Don
źródło
2
FWIW Musiałem użyć ścieżki absolutnej przynajmniej dla pylinta
Kat
6
Czy masz na myśli ustawienia obszaru roboczego? Czy istnieje sposób na skonfigurowanie preferencji tylko dla poddrzewa mojego obszaru roboczego?
yucer,
3
Czy możesz to zrobić dla każdego projektu?
holms
1
Don powyżej ma rację. Proszę po prostu dokładnie sprawdzić stronę internetową VS Code: code.visualstudio.com/docs/python/ ...
Ricardo Anjos
5
@holms tak, chcesz edytować ustawienia obszaru roboczego ( .vscode/settings.json)
Atav32,
91

Od września 2016 r. (Zgodnie z dokumentacją rozszerzenia Github repo ) możesz po prostu wykonać polecenie z poziomu vscode, które pozwoli ci wybrać interpreter z automatycznie wygenerowanej listy znanych tłumaczy (w tym tego w środowisku wirtualnym twojego projektu).

Jak korzystać z tej funkcji?

  • Wybierz polecenie Python: Select Workspace Interpreter (*) z palety poleceń (F1).

  • Po wybraniu powyższej komendy lista wykrytych tłumaczy zostanie wyświetlona w postaci quick picklisty.

  • Wybór tłumacza z tej listy spowoduje automatyczną aktualizację pliku settings.json .

(*) To polecenie zostało zaktualizowane do Python: Select Interpreternajnowszej wersji VSC (dzięki @nngeek).
Zwróć również uwagę, że wybrany przez Ciebie interpreter zostanie wyświetlony po lewej stronie paska stanu, np. Python 3.6 64-bit. Jest to przycisk, który można kliknąć, aby uruchomić funkcję Select Interpreter.

Daniel F.
źródło
3
smutna rzecz, nie pozwala mi na dodanie nowego tłumacza do listy ... czy to w ogóle możliwe?
Genuinefafa
@g Genuinefafa Nie wiem zbyt wiele o Kodzie, ale w dokumentacji repozytorium, którą połączyłem, stwierdza, że ​​interpretery są wykrywane w standardowych ścieżkach (/ usr / local / bin, / usr / sbin, / sbin), środowiskach wirtualnych pod obecny projekt i środowiska Conda. Może mógłbyś dodać swojego tłumacza do jednej z tych lokalizacji, aby mógł go automatycznie odebrać. Ale tylko zgaduję.
Daniel F.,
To dobry pomysł @DanielF. Rozwiązuję to, ale ręcznie konfiguruję katalogi wskazujące na środowisko projektu. $PATHPomysł nie działa (w rzeczywistości jest to, co workonskrypt powinien zrobić). Zostało to przetestowane kilka tygodni temu, nie jestem pewien, czy rozwiążemy to w nowych wydaniach.
Genuinefafa
4
Aby znaleźć swoje virtualenv, python.venvPathnależy je ustawić.
Mahmoud Hanafy
2
Od grudnia 2017 r. Z kodem 1.18.1 polecenie pochodzi Python: Select Interpreterz palety poleceń. Przez chwilę python workspace
walczyłem,
35

Całkiem proste z najnowszym VSCode, jeśli masz zainstalowane oficjalne rozszerzenie Pythona dla VSCode

Shift+ Command+P

Wpisz: Python: wybierz Interpreter

Wybierz swoje wirtualne środowisko.

Oficjalna strona

DingLi
źródło
14
Niestety, to polecenie nie wyświetla lokalnych wirtualnych środowisk env.
Antonin
@Antonin Testuję na moim vscode w najnowszej wersji, działa. Czy jesteś w systemie Mac lub innym i jaki jest twój błąd?
DingLi
1
Rzeczywiście na komputerze Mac, dziękuję @DingLi, zadziałało po skonfigurowaniu tego:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin
1
@Antonin dla wirtualnych środowisk, zobacz odpowiedź ssword's
carton.swing
2
Tak, naprawdę życzę Tobie i wszystkim innym, żeby przestali mówić „całkiem proste”. Wirtualne środowiska nie są wyświetlane, tylko tłumacze, wersja macOS 2019.6. I to jest pytanie dotyczące virtualenv, a nie tylko interpreterów Pythona. @ssword ma poprawną odpowiedź. A przynajmniej mam nadzieję, że przyniesie resztę konfiguracji opartej na virtualenv, która NIE jest tylko plikiem wykonywalnym Pythona do użycia.
JL Peyret
34

W najnowszym rozszerzeniu języka Python do kodu programu Visual Studio dostępne jest ustawienie venvPath:

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

W systemie Mac OS X przejdź Code > Preferences > Settingsdo opcji Python Configuration i przewiń w dół .

Poszukaj "python.venvPath: "",i kliknij ołówek po lewej stronie, aby otworzyć ustawienia użytkownika. Na koniec dodaj ścieżkę do miejsca, w którym przechowujesz środowiska wirtualne.

Jeśli używasz virtuanenvwrapper lub umieściłeś wszystkie swoje wirtualne ustawienia env w jednym folderze, to będzie to dla Ciebie.

Po skonfigurowaniu "python.venvPath"uruchom ponownie VSC. Następnie otwórz paletę poleceń i poszukaj „Python: Select Interpreter”. W tym momencie powinieneś zobaczyć interpreter powiązany z właśnie dodanym wirtualnym środowiskiem.

sword
źródło
13

Innym sposobem jest otwarcie VSC z terminala z ustawionym virtualenv i wykonanie F1 Python: Select Interpreteri wybranie wymaganego virtualENV

virtualENV

pm.calabrese
źródło
8
To wydaje się nie działać dla mnie. Muszę mieć plik ustawień. Czy jest coś, czego mi brakuje?
McKay,
1
Użyłem tej metody pomyślnie, ale musiałem wykonać kod -a.
YoFlynn
1
To dało mi odpowiedniego interpretera Pythona, ale nie znalazłem reszty mojej Venv. Dodanie nazwy mojego katalogu venv "ve" do python.venvFolders naprawiło ten problem.
user1055568
1
Mój poprzedni komentarz był błędny. Miałem inne problemy, które pomyliłem z brakiem znalezienia venv.
user1055568
7

Wstępna odpowiedź. Wstawiłem absolutną ścieżkę do pliku wykonywalnego środowiska wirtualnego Pythona, jak również ma pakiety. Następnie ponownie uruchomiłem kod VS.

Próbuję uzyskać $ {workspaceRoot}, aby uniknąć sztywnego kodowania ścieżek bezwzględnych, proszę o pomoc, jeśli ci się udało.

{
    "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
źródło
2
Podniosłem problem na github.com/DonJayamanne/pythonVSCode/issues/148
Jesvin Jose
4

Udało mi się użyć ustawienia obszaru roboczego, o które prosili inne osoby na tej stronie.

W Preferencjach, ⌘ + P, wyszukaj python.pythonPathw pasku wyszukiwania.

Powinieneś zobaczyć coś takiego:

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

Następnie kliknij zakładkę USTAWIENIA PRZESTRZENI ROBOCZEJ po prawej stronie okna. Dzięki temu ustawienie będzie miało zastosowanie tylko do obszaru roboczego, w którym się znajdujesz.

Następnie kliknij ikonę ołówka obok „python.pythonPath”. Powinno to skopiować ustawienie do ustawień obszaru roboczego.

Zmień wartość na taką, jak:

"python.pythonPath": "${workspaceFolder}/venv"
Charlie Le
źródło
2

a) Zmodyfikuj domyślne ustawienie wirtualnej ścieżki ENV programu Visual Studio Code. Nazywa się „python.venvPath”. Robisz to, przechodząc do code-> settings i przewiń w dół do ustawień Pythona.

b) Uruchom ponownie VS Code

c) Teraz, jeśli wykonasz Shift + Command + P i wpiszesz Python: Wybierz Interpreter, powinieneś zobaczyć listę swoich wirtualnych środowisk.

Ajay K.
źródło
1

Wydaje się, że (jak do 2018.03) w Code Insider, wprowadzono dyrektywę o nazwie python.venvFolders:

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

Wszystko, czego potrzebujesz, to dodać nazwę folderu virtualenv.

Holms
źródło
1

W systemie Mac OSX z wersją kodu 1.34.0 (1.34.0) musiałem wykonać następujące czynności, aby VSCode rozpoznał środowiska wirtualne:

Lokalizacja mojego środowiska wirtualnego (o nazwie ml_venv):

/Users/auser/.pyvenv/ml_venv

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

Dodałem następujący wpis w Settings.json: "python.venvPath": "/Users/auser/.pyvenv"

Zrestartowałem IDE i teraz mogłem zobaczyć interpreter z mojego wirtualnego środowiska: wprowadź opis obrazu tutaj

b.sodhi
źródło
Używanie ścieżki absolutnej ma znaczenie. To zadziałało dla mnie. Dzięki
Alexander Suraphel
0

Mam to od YouTube Konfigurowanie Pythona VS ... Venv

OK, film naprawdę nie pomógł mi zbytnio, ale ... pierwszy komentarz pod (przez osobę, która opublikował wideo) ma dużo sensu i jest czystym złotem.

Zasadniczo otwórz wbudowany terminal VS. Następniesource <your path>/activate.sh w zwykły sposób wybierasz venv z wiersza poleceń. Mam predefiniowaną funkcję bash, aby znaleźć i uruchomić odpowiedni plik skryptu i to działało dobrze.

Cytując ten komentarz z YT bezpośrednio (wszystkie zasługi dla aneuris ap ):

(naprawdę potrzebujesz tylko kroków 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.

Jak możesz zauważyć, on mówi activate.bat. Tak więc, jeśli działa dla mnie na komputerze Mac i działa również w systemie Windows, są szanse, że jest dość solidny i przenośny. 😀

JL Peyret
źródło