Використовуйте Virtualenv з Python з кодом Visual Studio в Ubuntu


86

У мене є проект на Python, а навігація / автозаповнення чудово працюють у файлах проекту. Я хочу вказати virtualenv, щоб навігація / автозавершення працювало з пакетами всередині цього virtualenv.

Я спробував це в settings.py, але навігація / автозаповнення не працює. Також налаштування "python.pythonPath":"~/dev/venvs/proj/bin/pythonвбило оригінальну навігацію / автозаповнення.

{
    "editor.rulers": [80,100],
    "python.autoComplete.extraPaths": [
        "~/dev/venvs/proj",
        "~/dev/venvs/proj/lib"
     ]
}

такий шебанг також працює, якщо ви не хочете возитися з налаштуваннями: #! bin / python3
Alex R

youtu.be/6YLMWU-5H9o?t=550 тут Ден Тейлор пояснює, як запустити virtualenv у vscode
тест30

Для останньої версії коду я просто клацнув інтерпретатор python внизу ліворуч, потім у верхній середині з'явилася палітра команд, виберіть Ввести шлях до інтерпретатора Python, потім виберіть Знайти ..., потім знайдіть у ~ / ваш шлях venv / bin / python, у мене python3.8
JCQian

Відповіді:


96

Останнє оновлення розширення вимагає лише вказати "python.pythonPath"наступне. Значення для "python.autoComplete.extraPaths"будуть визначені під час виконання, але ви все ще можете вказати там спеціальні шляхи.

Будь ласка, не забудьте перезапустити код VS після внесення необхідних змін.

{
    "editor.rulers": [80,100],
    "python.pythonPath":"~/dev/venvs/proj/bin/python"
}

2
FWIW Мені довелося використовувати абсолютний шлях, принаймні для пілінта
Кет,

6
Ви маєте на увазі в налаштуваннях робочої області? Чи є спосіб встановити налаштування лише для піддерева моєї робочої області?
yucer

3
Чи можете ви зробити це для кожного проекту?
Холмс

1
Дон зверху правий. Просто перевірте веб-сайт VS Code: code.visualstudio.com/docs/python/…
Рікардо

5
@holms yup, ти хочеш відредагувати Налаштування робочої області ( .vscode/settings.json)
Atav32,

91

Станом на вересень 2016 р. (Згідно з документацією розширення репозиторію Github ) ви можете просто виконати команду всередині vscode, яка дозволить вам вибрати інтерпретатор із автоматично сформованого списку відомих інтерпретаторів (включаючи той, що знаходиться у віртуальному середовищі вашого проекту).

Як користуватися цією функцією?

  • Виберіть команду Python: Select Workspace Interpreter(*) з палітри команд (F1).

  • Після вибору вищезазначеної команди у списку буде відображено список виявлених інтерпретаторів quick pick.

  • Вибір інтерпретатора з цього списку автоматично оновить файл settings.json .

(*) Ця команда була оновлена до Python: Select Interpreterостаннього випуску VSC (спасибі @nngeek).
Також зауважте, що вибраний вами інтерпретатор відображатиметься ліворуч на панелі стану, наприклад, Python 3.6 64-bit. За допомогою цієї кнопки можна активувати функцію «Вибрати перекладача».


3
сумно, це не дозволяє мені додати нового перекладача до списку ... чи можливо це взагалі?
genuinefafa

@genuinefafa Я мало що знаю про код, але в документації до репо, до якої я зв’язав, зазначено, що інтерпретатори виявляються у пошуку за стандартними шляхами (/ usr / local / bin, / usr / sbin, / sbin), віртуальних середовищах під поточного проекту та середовища Conda. Можливо, ви можете додати свого перекладача в одне з цих місць, щоб він міг автоматично його забрати. Але я лише здогадуюсь.
Даніель Ф.

Це гарна ідея @DanielF. Я вирішую це, але вручну встановлюю каталоги, що вказують на середовище проекту. $PATHІдея не працює ( на самому ділі це те , що workonсценарій повинен робити). Це було перевірено кілька тижнів тому, не впевнений, чи вирішить це питання у нових випусках.
genuinefafa

4
Щоб знайти свій virtualenv, python.venvPathпотрібно встановити.
Махмуд Ханафі

2
Станом на грудень 2017 року з кодом 1.18.1 команда надходить Python: Select Interpreterіз палітри команд. python workspace
Якийсь час боровся

34

Досить просто з останнім VSCode, якщо ви встановили офіційне розширення Python для VSCode

Shift+ Command+P

Тип: Python: виберіть Interpreter

Виберіть віртуальне середовище.

Офіційний сайт


13
На жаль, ця команда не може перерахувати локальні віртуальні envs.
Антонін

@Antonin Я тестую на своєму vscode на останній версії, це працює. Ви перебуваєте в mac або в іншій системі, і в чому ваша помилка?
DingLi,

1
Насправді на Mac, дякую @DingLi, це спрацювало після налаштування:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Антонін,

1
@Antonin для віртуальних заявників, див. Відповідь
sword

2
Так, я дуже бажаю тобі, і всі інші, перестали говорити "зовсім просто". Віртуальних env в списку немає, лише перекладачі, версія версії MacOS 2019.6. І це питання говорить virtualenv, а не лише інтерпретатори python. @ssword має правильну відповідь. Або, принаймні, я сподіваюся, що це принесе решту конфігурації на основі virtualenv, яка НЕ ​​є просто виконуваним файлом python для використання.
JL

34

З останнім розширенням Python для коду Visual Studio є параметр venvPath:

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

У Mac OS X перейдіть Code > Preferences > Settingsі прокрутіть вниз до конфігурації Python .

Знайдіть "python.venvPath: "",і клацніть олівець зліва, щоб відкрити ваші налаштування користувача. Нарешті, додайте шлях до місця, де ви зберігаєте свої віртуальні середовища.

Якщо ви використовуєте virtuanenvwrapper або поклали всі налаштування віртуального env в одну папку, це буде саме вам.

Після налаштування "python.venvPath"перезапустіть VSC. Потім відкрийте палітру команд і знайдіть «Python: Select Interpreter». На цьому етапі ви побачите інтерпретатор, пов’язаний із щойно доданим віртуальним середовищем.


13

Інший спосіб - відкрити VSC з терміналу з набором virtualenv і потрібно виконати F1 Python: Select Interpreterта вибрати необхідний virtualENV

віртуальнийENV


8
Здається, це не працює для мене. Я повинен мати файл налаштувань. Щось мені не вистачає?
McKay

1
Я успішно використав цей метод, але мені довелося зробити код -a.
ЙоФлінн,

1
Це дало мені правильний інтерпретатор python, але решту мого venv він не знайшов. Додавши мою назву каталогу vev "ve" до python.venvFolders, це виправлено.
user1055568

1
Мій попередній коментар був помилковим. У мене були інші проблеми, які я прийняв за те, що не знайшов venv.
user1055568

7

Орієнтовна відповідь. Я поставив абсолютний шлях до виконуваного файлу python віртуального середовища, а також має пакунки. Потім я перезапустив код VS.

Я намагаюся отримати $ {workspaceRoot}, щоб уникнути жорсткого кодування абсолютних шляхів, будь ласка, допоможіть, якщо вам це вдалося.

{
    "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"
     ]
}

2
Я порушив проблему на github.com/DonJayamanne/pythonVSCode/issues/148
Jesvin Jose

4

Я зміг використати налаштування робочої області, про яку просили інші люди на цій сторінці.

У Налаштуваннях ⌘ + P знайдіть python.pythonPathу рядку пошуку.

Ви повинні побачити щось на зразок:

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

Потім натисніть на вкладку НАЛАШТУВАННЯ РОБОЧОГО ПРОСТОРУ в правій частині вікна. Це зробить це таким чином, що налаштування застосовуватиметься лише до робочої області, в якій ви перебуваєте.

Потім натисніть на піктограму олівця поруч із написом "python.pythonPath". Це має скопіювати налаштування над налаштуваннями робочої області.

Змініть значення на щось на зразок:

"python.pythonPath": "${workspaceFolder}/venv"

2

а) Змініть налаштування віртуального коду Visual Studio Code за замовчуванням. Це називається "python.venvPath". Ви робите це, зайшовши в код-> налаштування і прокручуючи вниз для налаштувань python.

б) Перезапустіть код VS

в) Тепер, якщо ви робите Shift + Command + P і набираєте Python: Виберіть Interpreter, ви побачите список своїх віртуальних середовищ.


1

Здається, (як на 2018.03) було введено директиву code-insider, яка називається python.venvFolders:

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

Все, що вам потрібно, це додати назву вашої папки virtualenv.


1

У Mac OSX за допомогою коду версії 1.34.0 (1.34.0) мені довелося зробити наступне, щоб VSCode розпізнав віртуальні середовища:

Розташування мого віртуального середовища (з назвою ml_venv):

/Users/auser/.pyvenv/ml_venv

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

Я додав такий запис у Settings.json: "python.venvPath": "/Users/auser/.pyvenv"

Перезапустив IDE, і тепер я міг побачити інтерпретатор з мого віртуального середовища: введіть тут опис зображення


Використання абсолютного шляху має значення. Це спрацювало для мене. Дякую
Олександр Сурафель

0

Отримав це з Youtube Налаштування Python VS ... Venv

Добре, відео справді мені не так сильно допомогло, але ... перший коментар від (того, хто опублікував відео) має багато сенсу і є чистим золотом.

По суті, відкрийте вбудований термінал VS. Потім source <your path>/activate.sh, звичайним способом ви вибираєте venv з командного рядка. У мене є заздалегідь визначена функція bash для пошуку та запуску потрібного файлу сценарію, і це спрацювало чудово.

Посилаючись безпосередньо на цей коментар YT (всі заслуги аневриту ):

(вам дійсно потрібні лише кроки 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.

Як ви можете помітити, він говорить про activate.bat. Отже, якщо це працює для мене на mac, і це працює і на Windows, швидше за все, це досить надійно і портативно. 😀

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.