Не удалось разрешить импорт «колбы» из исходного Pylance (reportMissingModuleSource)

Когда я пишу

      from flask import Flask

Одна желтая линия идет вверх по колбе и с указанием импорта «колба» не может быть решена с источником Pylance (reportMissingModuleSource) . Также я могу успешно работать с этим пакетом. Но дело в том, что я не очень хорошо умею использовать автоматические подсказки для классов и методов.

Дальше:

  1. Я убедился, что колба успешно установлена.
  2. Также я посетил эту ветку https://github.com/microsoft/pylance-release/issues/236

И я настроил свой settings.json в vscode следующим образом:

      "python.analysis.extraPaths": [
    "/media/sarimurrab/New Volume/COURSES/Flask/FlaskMigrateforDatabaseMigrations/2"
]

Но все же не удалось устранить ошибку.

12 ответов

Решение

Когда я не установил модуль «flask» в среде Python, которая в настоящее время используется в VSCode:

Пожалуйста, используйте команду " pip --version"чтобы проверить источник инструмента установки модуля" pip ", модуль устанавливается в это место:

Затем мы можем использовать команду " pip show flask"для проверки места установки модуля" flask ": (Он проверяет, соответствует ли место установки модуля среде Python, отображаемой в нижнем левом углу VSCode.)

Если сообщение «reportMissingModuleSource» все еще отображается здесь, перезагрузите VS Code.

( F1, Developer: Reload Window)

Вы используете Virtualenv? Если это так, убедитесь, что VSCode использует virtualenv в качестве вашего интерпретатора python, иначе он не сможет получить пакеты, которые вы установили внутри этого virtualenv.

Для этого щелкните интерпретатор Python в нижней панели, вы должны получить список возможных интерпретаторов Python, включая ваш virtualenv.

У меня была аналогичная проблема при попытке импортировать флягу на vscode. Я исправил это с помощью анаконды . Просто вы устанавливаете модуль flask на снимке экрана вашего созданного примера среды .

Как создать виртуальную среду в anaconda:
1. На левой боковой панели щелкните среды.
2. Щелкните создать (внизу).
3. Во всплывающем окне дайте вашему vir.env имя и выберите языковую версию.
4. После создания вы можете приступить к установке различных модулей в своей среде.

Надеюсь, это поможет!

Для Linux Mint и для тех, кто установил фляжку, но VSCode ее не находит:

  1. проверьте путь к Flask: pip show flask (должно быть что-л. Location: /home/<username>/.local/lib/python3.8/site-packages
  2. в VSCode нажмите левую нижнюю кнопку и выберите интерпретатор python, в моем случае я изменил его с python3.9 к python3.8 как мы видим это в колбе path.

Я попробовал все это, и ни один из этих шагов мне не помог.Наконец, это сработало:

Проверьте настройки интерпретатора вашей IDE. Если вы используете IDE, например PyCharm или Visual Studio Code, убедитесь, что вы выбрали правильный интерпретатор для своей виртуальной среды в настройках IDE.

Где мы это проверим в VSCode:

  1. Ctrl + Shift + P
  2. Введите «Python: выберите интерпретатор» в строке поиска палитры команд и выберите параметр из списка.
  3. Если ваша виртуальная среда уже указана, выберите ее из списка интерпретаторов. Если нет, выберите опцию «Ввести путь интерпретатора» и вручную найдите исполняемый файл интерпретатора в вашей виртуальной среде.
  4. Интерпретатором вашей виртуальной среды будет: <path_to_virtual_environment>/bin/python.

Я столкнулся с этой проблемой из-за использования колбы установки pip вместо колбы установки pip3.

Я решил свою проблему, используя «глобальную» версию Python. Возможно, Pylance не обновился для работы с версией Python, которую я использовал. скриншот языка интерпретатора

Это потому, что вы неправильно выбрали свой путь, введите:
pipenv --venv
тогда он покажет вам, где установлен ваш виртуальный env. Проверьте, где установлены пакеты в вашем окружении, а затем введите то, что приходит к вам из оболочки \scripts или любого другого \python, и пакеты будут работать.

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

Я думаю, что это проблема Vscode, просто перезапустите Vscode.

Выполнив следующие шаги, я решил эту проблему:

1) В каталоге проекта создайте файл

  1. в.flaskenvфайл напишите следующие две строки:

FLASK_ENV=развитие

FLASK_APP=main.py

Обратите внимание, что main.py является моим основным файлом после написания flask runв терминале Vscode дополнительно необходимо предварительно создать папку env или файл требований.

В нескольких ответах (ответы Джилл, Мариуса и Роя) упоминается тот факт, что необходимо выбрать правильный интерпретатор Python для правильной работы Pylance. Я хотел бы добавить тот факт, что это все еще необходимо сделать при использовании Jupyter Notebook с уже выбранным правильным ядром Python.

Было бы нелогично выбирать и интерпретатор Python, и ядро ​​Python для записной книжки, чтобы все работало. Это еще более нелогично, учитывая тот факт, что кнопка интерпретатора Python (в левой нижней части экрана, в строке состояния) не обязательно появляется, когда открыт блокнот Jupyter, но когда открыт скрипт Python. Например, снимке на этомэкрана мы видим небольшую строку под импортом Scikit-learn, указывающую на проблему с импортом (даже если импорт прошел успешно). Однако правильное ядро ​​Python с установленным Scikit-learn уже выбрано. Открытие только скрипта Pythonмы замечаем, что интерпретатор Python является причиной такого поведения, потому что был выбран неправильный, без Scikit-learn. В некотором смысле можно было подумать, что причиной этого была проблема с ядром Python или средой Conda (часто возникают проблемы такого рода при экспериментах с Jupyter Notebook и Jupyter Lab). Я надеюсь, что этот ответ может помочь тем, кто ищет решение этой проблемы в конкретном контексте Jupyter Notebooks внутри VS Code. Они могли проигнорировать другие ответы, потому что могли подумать, что это не для них.

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