Как импортировать все модули py из папки
Для своего проекта я хочу сделать каждую модельку как отдельный py файл с одним классом Есть папка models с N числом файлов, в каждом из которых лежит класс Как сделать так, чтобы код сам смотрел каждый py файл и импортировал его, чтобы я мог обратиться к классу внутри, например sword()?
Ответы (2 шт):
Автор решения: Abra_Kadabra
→ Ссылка
Попробуйте sysspath.append() или sys.path.insert()
Например
import sys
sys.path.append('/.../application/app/folder')
Автор решения: eri
→ Ссылка
Структура проекта
myproject
├── models
│ ├── __init__.py
│ └── mymodel.py
└── serv.py
__init__.py формирует список подмодулей
import os, pkgutil
__all__ = list(module for _, module, _ in pkgutil.iter_modules([os.path.dirname(__file__)]))
Сам подмодуль для примера
class Mymodel():
pass
Использование (serv.py)
from models import *
m = mymodel.Mymodel()
Но в редакторе будет подчеркивать "mymodel" is not defined. Если используешь линтер и автодополнение при написании кода, то __init__.py формируй вручную
__all__ = ["mymodel", ...]