170 похожих чатов

Добрый день, ребята, недавно возник такой вопрос. Не совсем по

python, но думаю, что близко :)

Насчёт архитектуры, подскажите пожалуйста, как лучше сделать. У меня есть три проекта, скажем backend, frontend, datascience и под каждый проект - своя папка.
Мне их надо запихнуть в один docker-compose, но вопрос в том, что backend вызывают функцию из проекта datascience.
То есть если у меня в верхней папке будет лежать backend, frontend, datascience, то backend не сможет использовать функцию из datascience, потому что python не дружит с такими импортами.

Как я могу это лучше сделать?
А тащить в backend datascience - я не хочу, потому что это не его логика.
Делать API между ними смысла пока что не вижу, потому что backend зависит от файлов, которые создаёт проект datascience.
Или же лучше сразу разделить логику?

7 ответов

15 просмотров

Перестать мыслить папками и начать мыслить пакетами и дистрибутивами.

Андрей-🐍 Автор вопроса
Alex
Перестать мыслить папками и начать мыслить пакетам...

То есть мне вынести datascience как пакет и аккуратно положить его в backend?

То есть оформить эти два пакета как дистрибутивы и установить их. Не будешь иметь проблемы с импортами.

Андрей-🐍 Автор вопроса
Alex
То есть оформить эти два пакета как дистрибутивы и...

Не совсем понимаю, что в данном контексте значит "дистрибутив"?

https://packaging.python.org/en/latest/tutorials/packaging-projects/

Андрей-🐍 Автор вопроса
Alex
https://packaging.python.org/en/latest/tutorials/p...

Благодарю, обязательно почитаю. Насчёт организации, логика примерно такова: Есть страшная вещь, которая создаёт видео в папке datascience, там скрипт видит, что добавили новое видео и запускает его анализ, после выдаёт какие-то параметры. Мне данные параметры надо добавить в БД, единственное решение, которое я нашёл - это чтобы backend запускал функцию из datascience, когда там появилось новое видео, а после заполнял БД.

Похожие вопросы

Обсуждают сегодня

А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Карта сайта