#python #python-3.x #visual-studio-code #vscode-settings #vscode-extensions
Вопрос:
В настоящее время я работаю над проектом, который выполняю на Python, но по какой-то причине импорт работает неправильно. Сначала я думал, что проблема как-то связана с моим кодом, но когда я попытался открыть свой проект в PyCharm, импорт из другого модуля работал просто отлично. У меня вообще не было никаких проблем. Каталог моего проекта выглядит примерно так:
C:.
└───project_folder
│ __init__.py
│
├───app
│ thing.py
│ another_thing.py
│
├───data
│ data.py
│ graph.py
│ __init__.py
│
├───models
│ abc.py
│ def.py
│ ghi.py
│ __init__.py
│
└───test
test_abc.py
test_def.py
test_ghi.py
__init__.py
когда я зайду в каталог тестов и введу test.abc:
from models.abc import ClassABC #Class in abc.py
вместо импорта из модуля из указанного пакета я получаю ModuleNotFoundError, и VSCode просто не распознает пакет как фактический пакет и думает, что «модели» — это модуль. Мне было любопытно, поэтому я решил попробовать и посмотреть, сохранится ли та же проблема, если я попытаюсь использовать PyCharm, и по какой-либо причине код выполняется без каких-либо проблем, и все работает отлично. Проблема только в VSCode, и я не знаю, почему. Кто-нибудь может мне помочь?
Комментарии:
1. Если ваш текущий каталог есть
project_filder
, и вы наберетеpython test/test_abc.py
его , он будет работать. Если ваш текущий каталог таковproject_folder/test
, он не будет работать. потому что он понятия не имеет, как его найтиmodels
.2. @TimRoberts Я попробовал это, но все равно ничего не вышло. Я все еще получаю ту же ошибку, что и раньше.
3. Я не уверен, как вообще появилась привычка помещать тестовые сценарии в
test
каталог. Для того чтобы использовать модули в рамках проекта, тестовые сценарии должны быть на верхнем уровне.4. Твое
__init__.py
project_folder
присутствие странно.5. @WolfgangKuehn хорошо, но удаление этого тоже не помогает. Проблема не в том, что проект вообще не работает. Проблема в том, что проект специально не работает в vscode, но все еще работает в другой среде разработки, такой как PyCharm…