Код VS - Пилинтер не может найти модуль - PullRequest
0 голосов
/ 29 августа 2018

Я начал использовать 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?

Я нашел несколько возможных способов сделать это:

  1. Создайте файл .env (см. [1] ниже).
  2. Укажите 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"
}

1 Ответ

0 голосов
/ 29 августа 2018

Похоже, мне пришлось использовать двоеточие вместо точки с запятой в .env файле, например: PYTHONPATH="~/.virtualenvs/evernote/bin/python:lib". Кажется, это решает проблему.

...