#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.