Управление импортом всех модулей в одном файле в проекте Python/Django, избегая при этом циклического импорта.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Управление импортом всех модулей в одном файле в проекте Python/Django, избегая при этом циклического импорта.

Сообщение Anonymous »

Я работаю над проектом Django, в котором имеется множество импортированных модулей из разных файлов, иногда всего до 50 строк импорта на страницу. Чтобы не загромождать, я создал один файл imports.py для централизации импорта.
Вот краткий пример того, как он выглядит:

Код: Выделить всё

from datetime import date, datetime
from typing import Any, Callable, Optional, Final, Type, TypeAlias, cast, Iterable
from functools import wraps
from cryptography.fernet import Fernet
from requests.auth import HTTPBasicAuth
from requests.models import Response
from PIL import Image, UnidentifiedImageError
from smtplib import SMTPRecipientsRefused
from dotenv import load_dotenv
from django.db import models, IntegrityError
...
# a lot more

__all__ = [
'datetime', 'Any',
'Callable', 'Optional', 'Final', 'Type', 'TypeAlias', 'cast', 'Iterable', 'wraps',
'Fernet', 'HTTPBasicAuth', 'Response', 'Image', 'UnidentifiedImageError',
'SMTPRecipientsRefused', 'load_dotenv', 'models', 'IntegrityError',......]
Затем в других файлах я импортирую все из imports.py следующим образом:

Код: Выделить всё

from bi_app.py.imports import *
Хотя я знаю, что это может быть необычно, я нахожу это более организованным.
Этот метод хорошо работает для внешних модулей, а также для линтеров, но когда я пытаюсь включить импорт для своего собственных файлов проекта, я часто сталкиваюсь с проблемами циклического импорта.
Мой вопрос: есть ли способ объединить весь импорт из моих собственных файлов в один файл, не вызывая циклического импорта?Спасибо за помощь

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-while-av
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»