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

В корне с другими приложениями я создал папку с функциями,

которые все приложения используют, но оказалось, что нельзя импортировать так:

from ...global_services.ticket_system import get_ticket_activity

Селери видит в этом ошибку...видимо из-за того, что его корневой файл в находится в папке рядом с settings.py, а не на уровень выше

Как мне сделать общие функции для всего проекта и чтобы celery не крашился при этом?

11 ответов

19 просмотров

Покажи структура папки

Mark-Kozlov Автор вопроса

Куда мне поместить общие функции чтобы весь проект ими пользовался? Или как сконфигурировать celery чтобы можно было на уровень проекта подняться в импорте?

Так ты ответь на сообщение ниже

Mark-Kozlov Автор вопроса

├── core │ ├── core │ │ ├── asgi.py │ │ ├── celery.py │ │ ├── __init__.py │ │ ├── settings.py │ │ ├── urls.py │ │ └── wsgi.py │ ├── global_services │ │ └── ticket_system.py │ └── support_kpi │ ├── tasks.py │ ├── tests.py │ ├── urls.py │ └── views.py

Mark-Kozlov Автор вопроса

Знаю. Я вырезал часть чтобы структура была понятна

это важная часть, трейбсек скинь

Mark-Kozlov Автор вопроса

Проблема в том, что нельзя симпортить global_services Трейсбек Сначала просто таск не видит: celery_1 | Did you remember to import the module containing this task? celery_1 | Or maybe you're using relative imports? celery_1 | celery_1 | Please see celery_1 | http://docs.celeryq.org/en/latest/internals/protocol.html celery_1 | for more information. celery_1 | celery_1 | The full contents of the message body was: celery_1 | b'[[], {}, {"callbacks": null, "errbacks": null, "chain": null, "chord": null}]' (77b) celery_1 | Traceback (most recent call last): celery_1 | File "/usr/local/lib/python3.9/site-packages/celery/worker/consumer/consumer.py", line 581, in on_task_received celery_1 | strategy = strategies[type_] celery_1 | KeyError: 'update_support_employees' Потом я исключил из импортов все, что обращалось в католог на уровень проекта и таски появились Когда пытаешься сделать импорт выходит такая ошибка celery_1 | Error: Invalid value for '-A' / '--app': celery_1 | Unable to load celery application. celery_1 | While trying to load the module core the following error occurred: celery_1 | Traceback (most recent call last): celery_1 | File "/usr/local/lib/python3.9/site-packages/celery/bin/celery.py", line 53, in convert celery_1 | return find_app(value) celery_1 | File "/usr/local/lib/python3.9/site-packages/celery/app/utils.py", line 384, in find_app celery_1 | sym = symbol_by_name(app, imp=imp) celery_1 | File "/usr/local/lib/python3.9/site-packages/kombu/utils/imports.py", line 56, in symbol_by_name celery_1 | module = imp(module_name, package=package, **kwargs) celery_1 | File "/usr/local/lib/python3.9/site-packages/celery/utils/imports.py", line 100, in import_from_cwd celery_1 | return imp(module, package=package) celery_1 | File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module celery_1 | return _bootstrap._gcd_import(name[level:], package, level) celery_1 | File "<frozen importlib._bootstrap>", line 1030, in _gcd_import celery_1 | File "<frozen importlib._bootstrap>", line 1007, in _find_and_load celery_1 | File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked celery_1 | File "<frozen importlib._bootstrap>", line 680, in _load_unlocked celery_1 | File "<frozen importlib._bootstrap_external>", line 790, in exec_module celery_1 | File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed celery_1 | File "/app/core/__init__.py", line 5, in <module> celery_1 | from .celery import app as celery_app celery_1 | File "/app/core/celery.py", line 31, in <module> celery_1 | from ..global_services import cache_decorators celery_1 | ImportError: attempted relative import beyond top-level package

ты венв не забыл?

Mark-Kozlov Автор вопроса

Что это?

почему двоеточие?

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта