Неразрешенные модули Python в VSCode

#python #visual-studio-code #import #module

#python #visual-studio-code #импорт #модуль

Вопрос:

У меня проблема с VSCode, которую я не могу понять. Когда я начал разрабатывать свой проект, у меня была следующая структура :

 TopDirectory
 file1.py
 file2.py
 file3.py
 ....
  

Все работало нормально. Затем я решил поместить весь файл * .py в подкаталог с именем core .

 TopDirectory
 core
  file1.py
  file2.py
  file3.py
  

Когда я выполняю код, он выполняется без каких-либо проблем, но Vscode сообщает мне, что он не может разрешить модули, хотя все они одинаковы (как и раньше). Если я импортирую модули следующим образом: import core.file2 core.file3 в file1, VSCode перестает жаловаться, но мой код больше не запускается, сообщая мне, что при запуске нет основного модуля file1.py .
Я также попробовал import .file2, VSCode по-прежнему доволен, но Python сообщает мне, что нет известного родительского пакета.

Можете ли вы помочь мне исправить это или хотя бы понять, что здесь происходит?

Ответ №1:

Мне удалось устранить проблему. В корневой папке моего проекта я создал файл .vscode / settings.json. Я добавил в файл следующее утверждение :

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

Теперь все работает нормально!

Ответ №2:

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

Поскольку эти три файла хранятся в одной папке, а VSCode выполняет поиск файлов из родительского файла («core») текущего файла, мы можем использовать « import file_name » для импорта других файлов:

введите описание изображения здесь

Моя среда:

ОС: Windows_NT x64

VSCode: 1.50.1 (настройка пользователя)

 "python.languageServer": "Microsoft",
  

Обновить:

Когда я использую "python.languageServer": "Pylance", терминал, будет отображаться предупреждение « Import "file2" could not be resolved «, но результат кода может быть выведен, поэтому я установил следующее:

введите описание изображения здесь

или добавлены следующие настройки в settings.json :

 "python.analysis.diagnosticSeverityOverrides": {
      "reportMissingImports": "none"
    },
  

Комментарии:

1. Привет и спасибо, что пытались мне помочь. Я думаю, что разница заключается в том, что я впервые начал разрабатывать проект без подкаталога core. Я запускаю VSCode под управлением Debian GNU / Linux с сервером Pylance Python.

2. Однако, если я открою только основную папку в VSCode, проблем с импортом больше не будет.

3. @moulip -Может ли результат быть успешно выведен при использовании оператора import, используемого в моем ответе? Когда я использую языковую службу «Pylance», код может быть выполнен.

4. @moulip -я обновил свой ответ, и вы можете обратиться к нему.

5. Я видел ваш обходной путь. Но мне это не очень помогает. Действительно, отключение reportmissisingimports только отключает предупреждение, но я не могу извлечь выгоду из автозаполнения VSCode, потому что он фактически не может его найти, что является более серьезной проблемой, чем сам варинг. Но теперь я вижу, что проблема связана с Pylance.