Вопрос: "Рабочий процесс Celery не может получить доступ к Python egg. Как это исправить?"

Тема: Проблема с доступом Celery worker к Python egg. Как это исправить?

Здравствуйте, коллеги!

Столкнулся с проблемой при работе с Celery worker, который не может получить доступ к Python egg. Вот в чем суть:

Я использую scrapyd-deploy для деплоя кода на продакшн сервер. Все egg-файлы хранятся в директории /home/my-projects/, и структура каталогов выглядит следующим образом:

/home/my-projects/eggs/project1/1234567890.egg
/home/my-projects/eggs/project2/82391t2352.egg
/home/my-projects/eggs/project3/6543267433.egg
/home/my-projects/eggs/project4/9674626232.egg
и т.д.

Для scrapyd сервис работает корректно, и доступ к этим egg обеспечивает без проблем:

[Unit]
Description=Scrapyd service
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/home/my-projects
ExecStart=/usr/local/bin/scrapyd

[Install]
WantedBy=multi-user.target

Однако, когда я пытаюсь аналогичным образом настроить celery worker, используя /lib/systemd/system/celery_project1.service, возникают проблемы:

[Unit]
Description=Celery Worker for Project 1
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/home/my-projects
#Environment="PYTHONPATH=/home/my-projects/eggs"
Environment="PYTHONPATH=/home/my-projects"
ExecStart=/usr/local/bin/celery -A project1.celery_app worker --loglevel=info --concurrency=10

[Install]
WantedBy=multi-user.target

После перезагрузки демона и рестарта сервиса, при выполнении systemctl status celery_project1, появляется ошибка:

Модуль project1.celery_app не найден.

Celery worker не может получить доступ к приложению внутри egg. Был испытан следующий способ: я извлек содержимое egg (unzip 1234567890.egg -d temp) и из новой директории temp успешно запустил команду:

celery -A project1.celery_app worker --loglevel=info --concurrency=10

Этот способ работает, однако вручную разархивировать egg и запускать worker неудобно. Кажется, проблема в недоступности приложения внутри egg для celery worker. Возможно, кто-то сталкивался с подобной проблемой? Как успешно настроить celery worker для работы непосредственно с egg, без необходимости извлечения его содержимого?

Заранее благодарен за ваши советы и помощь!