Visual Studio Code Python не работает с venv и wsl - PullRequest
1 голос
/ 07 марта 2019

Я использую VSCode в Windows 10 в качестве Python IDE. Я использую wsl.exe в качестве терминала в VSCode. Для каждого проекта я создаю отдельный venv (в wsl.exe) и устанавливаю все зависимости модуля / пакета python с помощью pip. Для запуска кода python (внутри venv) и для входа и выхода из venv я использую терминал wsl.exe.

В моем venvs у меня есть python 3.6.7, который поставляется с моего Ubuntu WSL. Интерпретатор Python VSCode является 3.7.1. Проблема в том, что pylint в VSCode не может найти импорт, хотя программы работают нормально. Pylint устанавливается с помощью pip в каждом венве

Должны быть некоторые настройки, чтобы заставить pylint искать импорт из venv, а не из собственного назначения интерпретатора Python VSCode.

Я пытался с настройкой "python.venvPath": "C:\\User\\username\\Desktop\\Python\\venvname", но не повезло. Может ли быть проблемой, что мои venvs используют Linux Pyhton, а мой VSCode использует версию Windows?

Я также попытался создать файл пиллинга, специфичный для рабочего пространства, и добавил #init-hook='import sys; sys.path.append("C:\Users\username\Desktop\Python\venv\lib\python3.6")', хотя он удалял ошибки, которые я прервал при линтировании, так как теперь я мог написать бессмысленный импорт.

Хотя это не делает VSCode непригодным для использования, красные линии при импорте действительно раздражают.

Спасибо всем заранее.

1 Ответ

0 голосов
/ 07 марта 2019

Одна из возможностей - изменить settings.py (настройки рабочего пространства вашего текущего проекта), добавив:

"python.pythonPath": "C:\\path\\to\\venvpath\\your-venv\\python"

Вы также должны добавить

"python.linting.pylintPath": "C:\\path\\to\\venvpath\\your-venv\\pylint"

кваши настройки рабочего пространства, а также.Вероятно, необходимо добавить .exe к исполняемым файлам (не уверен, потому что я в Linux).

Если это не сработает, я бы рекомендовал перейти на Python 3.6.7, который вы использовали для создания виртуальных сред.Но 3.7.1 должен работать, хотя.

...