Ошибка Pylint «неразрешенный импорт» в коде Visual Studio

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

  • macOS v10.14 (Мохаве)
  • Python 3.7.1
  • Код Visual Studio 1.30
  • Пилинт 2.2.2
  • Django 2.1.4

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

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

Все работает нормально, но начинает надоедать.

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

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

Есть ли быстрое решение, чтобы заставить его работать?

pip install pylint-django, затем в настройках кода vs добавьте это: "python.linting.pylintArgs": [ "--load-plugins=pylint_django", ],
Vaibhav Vishal 27.12.2018 05:33

@VaibhavVishal, к сожалению, я все еще получаю те же результаты (добавил его в свой файл settings.json)

jAC 27.12.2018 05:48

На самом деле это проблема VScode, которая обнаруживает пакет импорта очень поздно, после перезапуска он исправляется автоматически.

Anupam Haldkar 22.05.2020 13:18

@VaibhavVishal, это единственное решение, которое сработало для меня во всей ветке. Спасибо.

David D. 02.02.2021 10:18

Мой pythonPath уже был правильно настроен на питон venv. Если это кому-то поможет, мне на самом деле пришлось установить pylint в моем venv: python -m pip install pylint, а затем обновить свой pylintPath в VS Code до venv pylint.

Tim 13.04.2021 19:24
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
205
5
322 492
41
Перейти к ответу Данный вопрос помечен как решенный

Ответы 41

Ответ принят как подходящий

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

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

Такого рода работы. Для импорта, специфичного для Python, он разрешает их сейчас, но не мои собственные модели (например, «from users.models import User» по-прежнему говорит, что не может решить эту проблему). Мысли об этом?

jAC 27.12.2018 15:17

Точно сказать не могу. Попробуйте перезагрузить окно кода vs (из оболочки, code <project_directory> -r) или просто перезапустите vscode.

ruddra 27.12.2018 15:37

Ага все это перепробовал, до сих пор почему-то не узнает. Не уверен, что с этим происходит.

jAC 27.12.2018 16:53

Я не уверен, иногда это может произойти, если каталог рабочей области установлен неправильно. Убедитесь, что manage.py находится в корне workspace. Также убедитесь, что pylint настроен правильно

ruddra 27.12.2018 17:41

ты гений! Это произошло потому, что мое рабочее пространство не запускалось на корневом уровне проекта. Как только я отрегулировал это, он начал работать. Большое спасибо!

jAC 28.12.2018 15:54

Большое спасибо! Помог мне решить давнюю проблему!

user10925323 28.06.2019 03:25

@jAC, можешь подробнее рассказать? Кажется, я не могу понять этого.

dillon.harless 30.08.2019 21:41

У меня это не сработало. Если это кому-то поможет, добавление этих двух строк в пользовательские настройки сделало: "python.analysis.disabled": [ "unresolved-import" ], "python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"]

dillon.harless 30.08.2019 21:58

Ответ с «python.autoComplete.extraPaths» решил мою проблему со ссылкой на GitHub, которая объясняет причину.

Richard Li 24.03.2020 00:48

Окно перезагрузки помогло решить проблему с моими собственными моделями.

Jonathan 06.05.2020 11:14

ответ, определяющий "python.autoComplete.extraPaths", работал намного лучше.

Jason Harrison 03.12.2020 00:53

если у вас есть другие конфигурации в вашем рабочем пространстве, вы можете добавить их в объект dict, чуть выше последнего }.

user3821178 15.12.2020 03:18

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

{
    "python.jediEnabled": false
}

Лучше добавить немного пояснений.

Tiw 11.03.2019 13:24

Редактирование этой строки - большое изменение в вашем проекте. Строка: «python.jediEnabled»: false отключает старый языковой сервер и включает новый Microsoft Python Language Server. Посмотрите здесь: github.com/Microsoft/vscode-python/issues/2177 Я думаю, что намного проще просто добавить необходимые зависимости в наш envFile. Это описано в другом ответе. С новым Microsoft Python Language Server intellisense работает для меня намного лучше.

Tomasz Chudzik 19.04.2019 12:18

Для меня это наоборот, включение jedi в settings.json работает для меня. Подробнее здесь, stackoverflow.com/a/57269144/2877493

nairb 30.07.2019 12:05

@Tiw, особенно потому, что другой ответ предполагает прямо противоположное.

Neinstein 14.09.2020 13:50

Этот вопрос уже был открыт на GitHub:

Нерешенная проблема импорта Python # 3840

Есть два очень полезных ответа от MagnuesBrzenk и SpenHouet.

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

PYTHONPATH=YOUR/MODULES/PATH

И в вашем settings.json добавьте:

"python.envFile": ".env"

Спасибо, отлично сработало! "${workspaceFolder}/.env"PYTHONPATH=FolderName

KowaiiNeko 24.03.2019 03:58

При использовании Microsoft Python Language Server часто возникала проблема с редактируемыми установками. Однако похоже, что в настоящее время после нового исправления, описанного здесь: github.com/microsoft/python-language-server/issues/…, проблема была исправлена, и любой импорт может быть добавлен с помощью ExtraPaths. Для получения дополнительной помощи посмотрите этот TroubleShooting: github.com/microsoft/python-language-server/blob/master/…

Tomasz Chudzik 15.06.2019 00:23

Спасибо @TomaszChudzik - Настройка: "python.autoComplete.extraPaths": ["./src"] работала как шарм!

Robert 08.08.2019 05:09

Другое решение - добавить модули кодовой базы в ваш virtualenv (например, используя add2virtualenv YOUR/MODULES/PATH) и выбрать этот virtualenv в качестве интерпретатора Python.

Antwan 04.10.2019 17:45

Корневая папка проекта в vscode означает, где находится workspace.code-workspace и все репозитории как подкаталоги? Путь к модулю - это путь к site-packages?

Timo 02.07.2021 21:57

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

Я изменил его на использование .venv/bin/python, и весь мой импорт был разрешен правильно.

Я не знаю, что Visual Studio Code делает за кулисами, когда я это делаю, и не понимаю, почему это вызывает мою проблему, но для меня это было немного более простым решением, чем редактирование настроек моей рабочей области.

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

Ссылка: Неразрешенная проблема импорта Python # 3840, комментарий dkavraal

Он просто скрывает предупреждение, если я нажимаю на файл, оно снова появляется!

vijay athithya 24.10.2019 11:11

">" Является буквальным обозначением или частью приглашения?

Peter Mortensen 27.06.2020 18:15

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

Cmd / Ctrl + Shift + PPython: выберите интерпретатор → выберите пакет с пакетами, которые вы ищете:

Enter image description here

в моем случае это не сработало, но, надеюсь, это поможет другим решить эту проблему.

jAC 06.06.2019 00:34

да в этом дух, это не сложное решение, у меня так получилось :)

ted 06.06.2019 00:54

Это сработало для меня. В 2019 году кому-то еще было интересно.

Safder 22.06.2019 00:41

@Safder не для меня. используя virtualenv

dillon.harless 30.08.2019 20:56

это сработало для меня. Поскольку у меня есть структура каталогов, в которой для каждого проекта python у меня есть новый venv, я указываю его на этот конкретный Python в каталоге venv для этого проекта.

cryanbhu 15.12.2020 07:39

В Visual Studio 2019. Попробуйте повторно открыть VS после установки пакета. Работал у меня.

Pedro77 16.03.2021 03:23

интерпретатор Python находится в workspace.code-workspace. В Windows 10 python, установленный вместе с системой приложений, мой site-packages находится здесь 'C: \\ Users \\ User \\ AppData \\ Local \\ Packages \\ PythonSoftwareFo‌ undation.Python.3.9_‌ qbz5n2kfra8p0 \\ Local‌ Cache \\ local-package‌ s \\ Python39 \\ site-pa‌ ckages ', поэтому я взял интерпретатор в \User\AppData\Local\microsoft.. вместо program files/windowsapps/python... По-прежнему не повезло, может быть, потому, что у меня тоже есть некоторые модули pip в C:\\Program Files\\WindowsApps\\Python...

Timo 02.07.2021 21:50

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

"python.jediEnabled": true

Справка из https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-456017675

Я был включен с самого начала. повезло тебе

Foggy Minded Greenhorn 20.03.2020 12:01

Получение неизвестной конфигурации python 3.8 на v2020.8.10 расширения VSC python

Clocker 23.08.2020 18:22

Принятый ответ не исправит ошибку при импорте собственных модулей.

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

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

Ссылка: Устранение неполадок, неразрешенные предупреждения об импорте

У меня смешанное рабочее пространство, весь код Python находится в подпапке. Добавление .vscode в подпапку не сработает, это единственное рабочее решение.

daisy 03.11.2019 04:16

лучший ответ для vscode settings.json. (при использовании workspace.xml принятый ответ может быть подходящим, но я не могу сказать наверняка. Я также использую смешанное рабочее пространство) Большое спасибо за решение.

None 30.12.2019 06:16

Это должен быть ответ.

Richard Li 24.03.2020 00:46

Это сработало для меня! Ссылка на ссылку прекрасно объясняет. TL; DR; Для созданных пользователем локальных скриптов в подкаталогах вышеуказанный параметр помогает интерпретатору python распознавать подкаталог как собственное рабочее пространство. Впоследствии распознавание скриптов в рабочей области и разрешение импорта при импорте целых модулей или отдельных методов.

Avid Programmer 03.05.2020 22:33

Всем привет! Я обнаружил, что ["./path-to-your-code"] может быть ["./**"] в любом случае, когда двойная звездочка означает любую подпапку в корневом каталоге! Это более простое решение.

alan23273850 08.06.2020 16:23

Это сработало для меня и на Mac, но мне пришлось указать абсолютный путь от корня до каталога с добавляемыми файлами, чтобы импортировать любые другие файлы python в каталоге.

James DeRagon 09.06.2020 23:01

Это сработало для меня! Относительный путь работает с окнами. Но это неаккуратный обходной путь, и его не нужно делать. Хотелось бы, чтобы авторы исправили эту проблему

retrovius 24.07.2020 15:42

Не забудьте перезагрузить окно кода vs после добавления этого кода, чтобы изменения вступили в силу.

Adrian Gonzalez 05.08.2020 16:40

У меня это работает, и я обнаружил, что могу удалить его после того, как исчезнет неразрешенный импорт. Итак, это ошибка IDE?

WLiu 26.09.2020 14:44

@WLiu Если вы удалите, он может не работать снова, если вы снова запустите VsCode. Это не совсем ошибка, а проблема реализации VSCode.

Shinebayar G 26.09.2020 22:21

Это помогает, когда у вас, конечно, разделены венв и источник.

JEX 03.10.2020 15:44

У меня работает в венв!

yyFred 11.11.2020 02:29

В какой-то момент название настройки изменилось. Теперь это "python.analysis.extraPaths"

shmim 30.11.2020 02:22

Еще одна уникальная комбинация для избавления от ошибки линтинга (код все еще работал): 1. Измените языковой сервер Python в настройках с Pylance на что-то другое и 2. Добавьте «python.autoComplete.extraPaths»: [«./path-to -ваш-код "] в settings.json

user3661992 17.03.2021 12:44

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

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

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

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

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

Рады, что люди находят это полезным, но есть ли кто-нибудь, кто может объяснить эту вторую пару "ключ-значение"?

dillon.harless 27.11.2020 17:43

В случае ошибки Pylint установите следующие

pipenv install pylint-django

Затем создайте файл .pylintrc в корневой папке и напишите следующее

load-plugins=pylint-django

Это работает для меня:

Откройте палитру команд (Ctrl + Shift + P) и выберите «Python: Select Interpreter».

При этом вы устанавливаете интерпретатор Python в Visual Studio Code.

в моем случае. мой интерпретатор python 2 работает нормально. просто мой питон 3 не может очень хорошо сотрудничать

Foggy Minded Greenhorn 20.03.2020 12:02

Мое решение

Это решение только для текущего проекта.

  1. В корне проекта создать папку .vscode

  2. Затем создайте файл .vscode/settings.json

  3. В файле setting.json добавьте строчку (это для Python 3)

    {
        "python.pythonPath": "/usr/local/bin/python3",
    }
    
  4. Это пример для Python 2

    {
        "python.pythonPath": "/usr/local/bin/python",
    }
    
  5. Если вы не знаете, где находится ваша установка Python, просто запустите команду which python или which python3 на терминале. Он напечатает местоположение Python.

  6. Этот пример работает для докеризированный Python - Django.

Я устранил ошибку импорта с помощью Ctrl + Shift + P. Наберите «Настройки предпочтений» и выберите опцию Настройки Открыть настройки (JSON)

И добавляем строчку "python.pythonPath": "/usr/bin/"

Итак, содержимое JSON должно выглядеть так:

{
    "python.pythonPath": "/usr/bin/"
}

Оставьте остальные строки конфигурации, если они есть. Это должно импортировать все модули, которые вы установили с помощью PIP для автозаполнения.

Решение от Shinebayar G работал, но этот другой немного элегантнее:

Скопировано из Нерешенная проблема импорта Python # 3840:

Учитывая следующий пример структуры проекта:

  • workspaceRootFolder
    • .vscode
  • ... другие папки
  • codeFolder

Что я сделал для решения этой проблемы:

  1. Зайдите в папку рабочей области (здесь workspaceRootFolder) и создайте файл .env
  2. В этом пустом файле .env добавьте строку PYTHONPATH = codeFolder (замените codeFolder на имя вашей папки)
  3. Добавьте "python.envFile": "$ {workspaceFolder} /. Env" в settings.json
  4. Перезапустить код Visual Studio

Мое решение заключалось в том, чтобы открыть код Visual Studio в предыдущем каталоге.

Что вы имеете в виду под "предыдущий каталог"? Вы имеете в виду "родительский каталог"? Или что-то другое?

Peter Mortensen 12.07.2020 16:18

Я открываю VSCode только с консоли в каталоге перед проектом

Jeremias Caceres 13.07.2020 17:13

В моем случае у меня уже была активирована среда Конда, но я все еще хотел, чтобы локальные модули Python были доступны для автозаполнения, определения просмотра и т. д.

Я пробовал много решений, таких как добавление списка путей Python и т. д., Но в конечном итоге это для меня решило создание символической ссылки от Conda lib/python{your version}/site-packages на мой локальный модуль.

Если вы, как я, более наглядны, вы можете использовать конфигурации кода Visual Studio в меню ФайлПредпочтенияНастройки (Ctrl + ,). Перейдите к РасширенияPython.

В разделе Анализ: отключен добавьте подавление следующего сообщения: unresolved-import:

Visual Studio Code settings

Неразрешенный импорт для относительного импорта явно неверен, это избавляет от него.

Satya Mishra 04.06.2020 18:32

Это устраняет только предупреждение, а не устранение проблем. Если я использую метод пути python, тогда предупреждение об импорте исчезает, а также работают «детализация» («определение перехода») и «подсказки параметров».

davidfrancis 21.12.2020 21:18

Для меня проблема была связана с проектом, над которым я работал. Мне потребовалось время, чтобы понять это, поэтому я надеюсь, что это поможет:

Исходная структура папок:

    root/
    __init__.py  # Empty

        folder/
            __init__.py # Empty

            sub_folder_b/
                my_code.py
            sub_folder_c/
                another_code.py

В another_code.py:

from folder.sub_folder_b import my_code.py

Это не запускало intellisense в Visual Studio Code, но выполнялось нормально.

С другой стороны, добавление «root» в путь импорта заставило intellisense работать, но вызвало ошибку ModuleNotFoundError при выполнении:

from root.folder.sub_folder_b import my_code.py

Решение состояло в том, чтобы удалить файл _в этом_.py внутри каталога «папка», оставив только _в этом_.py, расположенный в /root.

Вам необходимо выбрать интерпретатор, связанный с виртуальной средой.

Enter image description here

Щелкните здесь (в нижней строке состояния):

Enter image description here

И просто выберите виртуальную среду, с которой вы работаете. Сделанный.

Иногда даже с выбранным переводчиком это не сработает. Просто повторите процесс еще раз, и он должен решить эту проблему.

Enter image description here

Это была именно моя проблема (на Mac), и выбор подходящего интерпретатора решил ее. Спасибо!

Mahm00d 21.07.2020 15:40

Это была моя проблема. Судя по всему, Джулия установила на ~\.julia\conda\3\python.exe собственный интерпретатор Python.

William John Holden 13.01.2021 20:59

У меня есть одна библиотека, которая дает сбой при попытке включить ее с помощью языковой службы Jedi и отлично работает без нее (то есть с C#).

Библиотека jsonslicer, и она зависит от внешней библиотеки C, которую я установил в /usr/local/lib. Может ли это иметь какое-то отношение к этому?

Я установил службу Jedi и библиотеку в свою среду Конда и использовал эту среду в Visual Studio. Он отлично работает во время выполнения и в моем терминале, но не при проверке проблем в моих исходных файлах и отображается как ошибка.

Сначала убедитесь, что вы установили плагин, но вполне вероятно, что каталог рабочей области настроен неправильно. Просто проверьте Pylint и отредактируйте базовый файл settings.json.

{
    "python.pythonPath": "/usr/local/bin/python3",
    "git.ignoreLimitWarning": true
}

Что вы имеете в виду под "проверить Пилинт"? Флажок? Что он существует / установлен? Что-то другое? Ответьте редактирование вашего ответа, а не здесь, в комментариях (и без «Обновлено:», «Обновить:» или аналогично).

Peter Mortensen 12.07.2020 16:36

Установите code-runner и добавьте приведенный ниже код в папку settings.json:

    "code-runner.executorMap": {
        "python": "python3 -u",
    }

"python": "(исполняемый файл Python с модулями или его путь) -u",

Что такое «код-бегун»? Можете ли вы добавить на него ссылку (автор редактирование вашего ответа, а не здесь в комментариях)?

Peter Mortensen 12.07.2020 16:38

Это происходит потому, что Visual Studio Code считает вашу текущую папку основной, а не фактической основной папкой.

Быстрый способ исправить - указать путь интерпретатора к основной папке.

Нажмите Command + Shift + P (или Ctrl + Shift + P в большинстве других систем).

Тип Интерпретатор Python

Выберите путь, по которому вы установили Python, из доступных вариантов.

Я столкнулся с этой проблемой тремя способами. Хотя для каждого из них есть решение в ответах на этот вопрос, я просто подумал собрать все это воедино.

  1. Сначала я получил «Неразрешенный импорт» при импорте некоторых модулей, и я заметил, что мои установки происходили в глобальном пипе, а не в виртуальной среде.

    Эта проблема возникла из-за интерпретатора Python. Вам нужно выбрать интерпретатор в Visual Studio Code, используя Shift + Ctrl + P, а затем ввести Select Python Interpreter. Выберите здесь свой интерпретатор Venv.

  2. Вторая проблема заключалась в следующем: вышеуказанное изменение не решило мою проблему полностью. На этот раз из-за файла settings.json. Если у вас нет файла settings.json в каталоге вашего проекта, создайте его и добавьте в него следующую строку:

        {
            "python.pythonPath": "apis/bin/python"
        }
    

    Это в основном скажет Visual Studio Code использовать интерпретатор Python, который находится в вашем venv.

  3. Третья проблема возникла при импорте пользовательского модуля или файла Python в другую программу. Для этого вам необходимо понимать структуру папок. Поскольку Python в venv находится внутри bin, вам нужно указать папку вашего модуля (в большинстве случаев это папка приложения). В моем случае это был app,

        from app.models import setup_db
    

    На словах import setup_db из models.py находится в папке приложение.

Интересно, сколько решений у этой проблемы есть (или нет), я пробовал большую часть из вышеперечисленного, ничего не работало, единственное решение, которое сработало, - установить сервер языка Python на Jedi, а не на Microsoft в файле settings.json:

"python.languageServer": "Jedi"

Если вы используете pipenv, вам необходимо указать путь к вашей виртуальной среде в файле settings.json. Например :

{
    "python.pythonPath": 
           "/Users/username/.local/share/virtualenvs/Your-Virual-Env/bin/python"
}

Это может помочь.

Ни одно из решений не сработало, кроме этого. Замена «Pylance» или «Microsoft» в settings.json решила мою проблему.

"python.languageServer": "Jedi"

Согласованный. Я также перепробовал все предоставленные варианты, но это сработало!

Wick 12c 05.07.2021 00:27

У меня такая же проблема с python 3.8.5 с использованием venv, vscode 1.48.2 Я нашел свое решение. В (папка env) / lib / site-packages нет пакетов. Я использую этот параметр (.vscode / settings.json)

   {
        "python.autoComplete.extraPaths": [
            "./**",
        ],
        "python.pythonPath": "env\\Scripts\\python.exe",
        "python.languageServer": "Microsoft"
   }

Изменение Python: языковой сервер "Джедаи" работали на меня. Изначально это была Windows.

Если кто-то окажется таким идиотом, как я, сработало следующее.

Старая структура папок:

awesome_code.py
__init__.py
    src/
        __init__.py
        stuff1.py
        stuff2.py

Новая структура:

awesome_code.py
    src/
        __init__.py
        stuff1.py
        stuff2.py

Решил проблему с питоном командной строки. Я установил модули с терминалом vs code в путь к проекту, но при импорте модуля в python командной строки Windows выдает ошибку, поскольку этот модуль не определен поэтому я устанавливаю эти модули из командной строки, и моя проблема решена.

Для меня это сработало, если я настроил пути для python, pylint и autopep8 на пути локальной среды.

Для вашего рабочего места добавьте / измените это:

"python.pythonPath": "...\\your_path\\.venv\\Scripts\\python.exe",
"python.linting.pylintPath": "...\\your_path\\.venv\\Scripts\\pylint.exe",
"python.formatting.autopep8Path": "...\\your_path\\.venv\\Scripts\\autopep8.exe",

Сохраните и перезапустите VS Code с рабочей областью. Сделанный!

Это сработало и для меня, точнее, установка «python.linting.pylintPath» - вот что решило проблему. У меня не было этой проблемы, пока я не обновился до Python 3.9. Я предполагаю, что они используют путь pylint по умолчанию.

areed1192 06.12.2020 04:05

How to avoid warning

Обратите внимание, что это просто пропуск предупреждения, а не устранение проблемы. Прежде всего откройте настройки кода Visual Studio в json и добавьте следующие аргументы после "[python]":{}

"python.linting.pylintArgs": ["--rep[![][1]][1]orts", "12", "--disable", "I0011"],
"python.linting.flake8Args": ["--ignore=E24,W504", "--verbose"]
"python.linting.pydocstyleArgs": ["--ignore=D400", "--ignore=D4"]

Это помогло мне избежать предупреждений о pylint в VSCode.

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

ritesh 04.07.2021 08:10

В этом случае мне нужно изменить заголовок своего ответа на «Как избежать предупреждения python pylint»?

Otabek Butcher 05.07.2021 12:05

Я столкнулся с той же проблемой при импорте модулей, относящихся к проекту (нестандартных). Подробное объяснение проблемы

Структура каталогов:

Project_dir:
    .vscode/settings.json
    dir_1
        > a
        > b
        > c
    dir_2
        > x
        > y
        > z

Что мы хотим:

Project_dir
    dir_3
        import a
        import y

Здесь «импортировать» и «импорт у» терпит неудачу со следующей ошибкой:

Import "dir_1.a" could not be resolvedPylancereportMissingImports
Import "dir_2.y" could not be resolvedPylancereportMissingImports

Что сработало для меня:

Добавление верхнего каталога, который содержит модули для импорта.

В приведенном выше примере добавьте следующий «Код для добавления» в «.vscode / settings.json»

Имя файла:

.vscode/settings.json

Код для добавления:

"python.analysis.extraPaths": [dir_1, dir_2]

Это то, что в итоге сработало для меня. У меня был проект с кодом в папке package_name, вложенной во внешнюю папку package_name. Добавление только package_name в «extraPaths» (не абсолютный путь) помогло.

Ruben Flam-Shepherd 24.01.2021 19:23

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

yem 10.05.2021 14:54

Ни один из ответов здесь не решил эту ошибку для меня. Код запускался, но я не мог сразу перейти к определениям функций. Это было только для некоторых местных пакетов. Во-первых, python.jediEnabled больше не подходит. Я сделал две вещи, но не уверен, что первое было необходимо:

  1. Загрузите расширение Pylance, измените python.languageServer на "Pylance"
  2. Добавить "python.analysis.extraPaths": [ "path_to/src_file" ]

Судя по всему, корень и src будут проверены на наличие локальных пакетов, но сюда необходимо добавить другие.

Установка расширения Pylance сразу устранила это для меня

Kyle Delaney 09.02.2021 21:37

У меня установлен pylance, и я все еще сталкиваюсь с этой проблемой в некоторых проектах. И должен ли extraPaths указывать на путь? Что такое src_file?

Stealth Rabbi 27.06.2021 07:48

Среда Conda

pylint error: "Unable to import 'django.X'"

После активации желаемого интерпретатора Python в среде conda VS Code иногда продолжает использовать pylint из среды conda по умолчанию. Например:

/home/<username>/anaconda3/bin/pylint

1. Установите pylint в целевую среду conda.

$ conda activate <target environment>
$ conda install pylint

2. Обновите настройки VS Code.

  • В VS Code Настройки найдите "pylint path"
  • Щелкните вкладку Рабочее пространство (вместо Пользователь по умолчанию)
  • В разделе «Расширения (##)» нажмите «Python (#)».
  • Прокрутите вниз до Python> Линтинг: Путь Pylint
  • Введите путь к pylint, указывающий на только что установленную копию pylint, например:

/home/<username>/anaconda3/envs/<target environment>/bin/pylint

Замените <username> и <target environment> в соответствии с конфигурацией вашей системы.

Теперь pylint найдет установленные библиотеки, включая Django, при условии, что Django был установлен в <target environment>.

3. Установите плагин Django pylint.

$ conda install pylint-django

Обновите настройки VS Code, чтобы использовать плагин:

  • Найдите в настройках VS Code "pylint args"
  • Под Python> Линтинг: аргументы Pylint нажмите "Добавить элемент"
  • Введите: --load-plugins=pylint_django
  • Нажмите "ОК".
  • Нажмите "Добавить элемент"
  • Введите: --django-settings-module=<PROJECT FOLDER>.settings
    • Замените <PROJECT FOLDER> папкой, содержащей файл конфигурации Django "settings.py".
  • Нажмите "ОК".
  • Перезапустить VS Code

Я использую следующую настройку: (в апреле 2021 г.)

  • macos big sur
  • vscode
  • Anaconda 3 (для окружающей среды)

И я столкнулся с этой ошибкой при запуске Django. Итак, я следую этим шагам, и эта ошибка устранена.

Шаги приведены на этих снимках экрана:

  1. Открыть настройки (рабочее пространство)

  2. Следуйте этому снимку экрана, чтобы открыть путь к Python Follow this for Step 2

  3. Теперь нажмите Edit in settings.json

  4. Сделайте путь, как показано на этом скриншоте /opt/anaconda3/bin/python

5. Теперь сохраните файл settings.json. 6. Перезапустите vscode.

Кроме того, intellisense может не работать в течение некоторого времени, подождите некоторое время, а затем перезапустите снова, после чего vscode прочитает файл для нового пути.

У меня была проблема, что импорт созданных мной модулей не был найден. Мне казалось, что я пробовал несколько методов, чтобы убедиться, что выбор интерпретатора Python был правильным, но безрезультатно. Я нашел ответ, который сработал для меня, отредактировав settings.json Python> Linting> Pylint Args и добавив init-hook ...

--init-hook = "from pylint.config import find_pylintrc; import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"

Это решение было найдено в Ошибка PyLint «Невозможно импортировать» - как установить PYTHONPATH?. Я не создавал и не редактировал pylintrc, но добавил вышеизложенное с помощью графического интерфейса VS Code.

Кажется, у меня возникла эта проблема, потому что django был установлен в моей базовой виртуальной среде, а не в той, которую я фактически использовал для проекта. Это в основном заставляло его работать, но отображать ошибки и некорректно выполнять автозаполнение.

Чтобы исправить я просто

  1. Открыт Anaconda Navigator
  2. Нажмите Среды в левом меню.
  3. Выберите виртуальную среду, которую вы используете для проекта
  4. В виртуальной среде щелкните зеленый треугольник (когда он загрузится) и выберите «Открыть терминал».
  5. Запустите pip install django

Как только это будет сделано, вы можете вернуться к VS Code и переключить среду python на базовую, а затем обратно на ту, которую вы хотите, в нижнем левом углу VS Code.

Ошибки должны исчезнуть и автозаполнение должно работать.

Итак, через 2 года я столкнулся с этой досадной проблемой. Все, что я здесь вижу, - это действительно сложные обходные пути. Вот простые шаги для всех, кто может столкнуться с этим позже:

  • в нижней части VS Code, где вы видите указанную версию Python, просто щелкните здесь
  • Появятся окна Выберите переводчика
  • нажмите на первый вариант с надписью «Выберите путь переводчика» и перейдите к пути к папке, в которой находится ваша виртуальная среда.

Это все, что вам нужно сделать, и избегать изменения этих настроек в VS Code, которые могут быть очень сложными или не выполняться с осторожностью.

Спасибо Surveyor Jr. Это на самом деле не сработало для меня в тот день. Так что, возможно, были улучшения. Спасибо, что добавили в ветку этот обходной путь!

jAC 24.08.2021 16:59

У меня это тоже не работает

Jamie Marshall 18.10.2021 00:15

@JamieMarshall Думаю, теперь это зависит от ОС. Я пользователь Windows. #Предположение. Но, надеюсь, вы уже нашли ответ.

Surveyor Jr 27.10.2021 19:29

@SurveyorJr - Я тоже windows. У меня оказалось, что пришлось деинсталлировать и заново устанавливать pylint.

Jamie Marshall 30.10.2021 03:05

при импорте модуля в подкаталог добавьте следующий параметр в .vscode / settings.json:

"python.analysis.extraPaths": [
        "./directory_name"
    ]

Другие вопросы по теме