Как использовать собственные пакеты Python в собственных пакетах? ModuleNotFoundError: ни один модуль не назван
Я создал код, используя следующую структуру:
├── project
| ├── .vscode
| | └── settings.json
| ├── packages
| | ├── __init__.py
| | ├── module_one.py
| | └── module_two.py
| └── main.py
module_one контент
def functionModuleOne():
print('functionModuleOne')
module_two content
import module_one
module_one.functionModuleOne()
def functionModuleTWO():
print('functionModuleTWO')
основное содержание
from package import module_two
Дело в том, что я пытаюсь импортировать «module_one» внутрь «module_two». У меня есть некоторые ошибки, потому что, по-видимому, я должен указать путь к модулям в .vscode / settings.json. Итак, я сделал это
Внутри json есть то, что есть:
{
"python.analysis.extraPaths": [".\\package"]
}
Тогда, видимо, все работало нормально. Я выполнил файл "module_two.py", и у меня нет ошибок.
Однако, когда я попытался выполнить файл «main.py», я получил следующую ошибку: ModuleNotFoundError: Нет модуля с именем «module_one» .
Мне нужна эта структура, потому что «module_two» нужно импортировать функции из «module_one», а «main» нужно импортировать функции из «module_two».
Я действительно не знаю, что происходит. Я все перепробовал и искал в сети, но безрезультатно.
Я был бы так рад, если бы кто-нибудь из вас мог мне помочь.
2 ответа
Причина в том, что при импорте методов в другие файлы VS Code по умолчанию начинает поиск из родительской папки импортированного файла. Очевидно, что в файле «main.py» он не может найти файл «module_one» согласно «import module_one».
Вы можете обратиться к следующим методам: Используйте следующий код в файле "module_two":
import sys
sys.path.append("./")
from emo.module_one import functionModuleOne
functionModuleOne()
def functionModuleTWO():
print('functionModuleTWO')
"
from emo.module_one import functionModuleOne
": (" main.py "может найти" module_one "по этому пути.),
"
sys.path.append("./")
": Добавьте путь к файлу" module_one "к пути" module_two ".
Запустите main.py:
Я предполагаю, что ошибка отображается только из-за буквы ...
Отредактируйте эту часть и попробуйте:
from packages import module_two
Ошибка возникает из-за того, что вы сохранили папку с именем "packages" и пытаетесь импортировать module_two из "package", поэтому выдает ошибку ..
Сообщите мне, если это сработает :)