Я начал использовать VS Code для разработки на Python для Mac и не могу pylint
найти модуль.
Это структура папок моего проекта:
project_root/
.env
.vscode/
settings.json
lib/
# lib containing necessary modules
sample/
client/
EDAMTest.py
# many more files
Я использую virtualenv, в который я установил pylint
. Виртуальный env активируется в терминале. Я запустил code
из папки project_root
через code .
в моем терминале.
VS Code говорит, что использует правильный переводчик. Я вижу в левом нижнем углу, что это говорит Python 3.6.1 (virtualenv)
Если я хочу проверить код project_root/sample/client/EDAMTest.py
в терминале, я могу сделать это с помощью export PYTHONPATH=../../lib; python EDAMTest.py
, находясь в папке project_root/sample/client/
.
Теперь, если я в VS Code, откройте файл EDAMTest.py
, pylint
говорит мне, что он не может импортировать модули из lib
.
Теперь мой вопрос:
Как я могу добавить lib
к PYTHONPATH
в VS Code?
Я нашел несколько возможных способов сделать это:
- Создайте файл
.env
(см. [1] ниже).
- Укажите
PYTHONPATH
в .vscode/launch.json
файле (см. [2])
Кажется, ни одно из найденных решений не работает.
Чего мне не хватает?
[1] Файл определений переменных среды
Это говорит мне, как определить глобальные (env) переменные. Поэтому я указал это:
PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
Но это не сработает. Все еще lib
s путь не найден pylint
[2] Итак, я создал файл launch.json
примерно так:
{
"name": "Python",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config.python.pythonPath}",
"program": "${file}",
"cwd": "${workspaceRoot}",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
],
"env": {
"PYTHONPATH": "~/.virtualenvs/evernote/bin/python:lib"
}
}
---
EDIT
Вот ссылка, которая пытается решить эту проблему:
Устранение неисправностей линтинга
Эта ссылка пытается решить несколько возможных проблем, одна из них:
... невозможно импортировать
Предлагаемое решение:
Убедитесь, что параметр pythonPath
указывает на допустимую установку Python, где установлен Pylint.
=> Да, я сделал.
В качестве альтернативы, установите python.linting.pylintPath
на соответствующую версию Pylint для используемого интерпретатора Python.
=> Я все-таки не добился успеха:
Мой .vscode/settings.json
:
{
"python.pythonPath": "~/.virtualenvs/evernote/bin/python",
"python.linting.pylintPath": "~/.virtualenvs/evernote/bin/pylint"
}