Ошибка "неразрешенного импорта" в коде Visual Studio - PullRequest
0 голосов
/ 27 декабря 2018

Я использую следующую настройку

  • MacOS Mojave
  • Python 3.7.1
  • Visual Studio Code 1.30
  • Pylint 2.2.2
  • Django 2.1.4

Я хочу использовать linting, чтобы облегчить мою жизнь в коде Visual Studio, однако, каждый мой импорт заявляет «неразрешенный импорт».Даже при импорте django по умолчанию (т.е. из моделей импорта django.db).

Я предполагаю, что это потому, что он не видит файлы Python виртуальной среды.

Все работает просто отлично, но запускаетсяраздражать.

У меня есть выбор интерпретатора - все системные версии python.Кажется, он вообще не видит моего питона в виртуальной среде (он не находится в том же каталоге, что и мое рабочее пространство, поэтому эта часть имеет смысл).

Если я настроил python.PythonPath в файле settings.json, он просто игнорирует его и не указывает путь к моей виртуальной среде в качестве опции.Я также попытался настроить его в своих глобальных настройках Python, но он также не отображается.

Кто-нибудь сталкивался с этой проблемой и знает быстрое решение, чтобы заставить его работать?

Спасибо, jAC

Ответы [ 9 ]

0 голосов
/ 27 августа 2019

Принятый ответ не исправит ошибку при импорте собственных модулей.Используйте следующие настройки в настройках вашего рабочего пространства .vscode/settings.json

"python.autoComplete.extraPaths": ["./path-to-your-code"],

ref: https://github.com/microsoft/python-language-server/blob/master/TROUBLESHOOTING.md#unresolved-import-warnings

0 голосов
/ 30 августа 2019

Ничто из вышеперечисленного не сработало для меня.Однако добавление обеих строк, указанных ниже, в мой файл settings.json.

"python.analysis.disabled": [ 
    "unresolved-import"
],
"python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"] 

Первая строка действительно скрывает ошибку линтинга.Конечно, не постоянное решение, но снимает помехи с экрана.

Этот ответ дал мне вторую строку: VS Код PyLint Ошибка E0602 (неопределенная переменная) с скомпилированной структурой Python ProtoBuf

Может быть, кто-то, кто понимает Python больше, чем я, может объяснить это еще раз.

0 голосов
/ 05 июня 2019

Альтернативный способ: используйте командный интерфейс!

cmd/ctrl + shift + p> Python: Select Interpreter> выберите тот, в котором вы ищите пакеты

enter image description here

0 голосов
/ 30 июля 2019

Я смог решить эту проблему, включив джедай в .vscode \ settings.json

"python.jediEnabled": true

Ссылка с https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-456017675

0 голосов
/ 27 мая 2019

Когда я > reload window это исправляет.

ref: https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-452657892

0 голосов
/ 28 апреля 2019

У меня есть другое решение: мой экземпляр VSCode обнаружил virtualenv, хранящийся в .venv, но использовал неправильный двоичный файл Python.Он использовал .venv/bin/python3.7;используя переключатель в синей строке состояния, я изменил его на .venv/bin/python, и все мои операции импорта были разрешены правильно.Я не знаю, что делает VSCode за кулисами, когда я делаю это, и не понимаю, почему это вызывало мою проблему, но для меня это было несколько более простым решением, чем редактирование настроек рабочего пространства.Надеюсь, это кому-нибудь поможет.

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

Этот вопрос уже был открыт на GitHub: https://github.com/Microsoft/vscode-python/issues/3840 Есть 2 очень полезных ответа от MagnuesBrzenk и SpenHouet.

На данный момент лучшее решение - это создать файл .env в вашемкорневая папка проекта.Затем добавьте PYTHONPATH к нему следующим образом:

PYTHONPATH=YOUR/MODULES/PATH

и в ваших settings.json добавьте

"python.envFile": ".env"  
0 голосов
/ 11 марта 2019

Если у вас есть этот код в вашем settings.json файле, удалите его

{    
    "python.jediEnabled": false
}
0 голосов
/ 27 декабря 2018

В ваших настройках рабочего пространства вы можете установить свой путь к Python следующим образом:

{
    "python.pythonPath": "/path/to/your/venv/bin/python",
}
...