deamon celery启动失败 "模块blah未找到 "或 "ImportError: attempted relative import with no known parent package"

问题描述 投票:-1回答:1

我在ubuntu 18.04 lts上运行python 3.6的venv下安装了flask与apache (wsgi),并成功导入其他模块。包括芹菜与rabbitmq。

我按照下面的指导来安装Celery和Flask https:/flask.palletsprojects.comen1.1.xpatternscelery。 并半信半疑地认为芹菜是用酒瓶叫的。因为当我运行 celery worker -A views.celery 它成功运行,我可以看到工人从我猜测的rabbitmq队列中收集任务。(我还在摸索这一切)。

当我按照网上的许多指南来使用systemd或init.d甚至是旧的supervisord时,我遇到了同样的问题,这反映了这个问题。Python - 未找到模块 但我按照它来做却没有成功。

所以要确认一下,我的错误是 ImportError: attempted relative import with no known parent package而这句话来自 views.celery带线 from .static.py.forms import blah哪儿 静态 是通常的flask目录,而 py 是一个目录,在这个目录中,我存储了一个 形式。 文件。

所以,因为这是用相对导入(所以我相信是因为句号的原因。Flask继续工作。但我收到的新错误是 module static.py was not found

根据其他stackoverflow问题的指导,我添加了一个 Environment=PATH="/var/www/Flask/app/"在Unit celeryd文件中。我还在此后的文件中添加了空白的 __init__.py 目录下的文件 静态py.

感谢任何帮助!

我也用过这些资源,但怀疑由于我的知识不足,我在某处出了错。

https://medium.com/@MicroPyramid/celery-with-supervisor-12522ec397ed
https://github.com/celery/celery/blob/3.1/extra/supervisord/celeryd.conf
https://docs.celeryproject.org/en/4.4.2/userguide/daemonizing.html#daemon-systemd-generic
https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units
https://stackoverflow.com/questions/21880360/daemonizing-celery
https://www.cyberciti.biz/faq/unix-create-user-account/
https://www.maketecheasier.com/add-remove-user-to-groups-in-ubuntu/
https://stackoverflow.com/questions/16981921/relative-imports-in-python-3
https://napuzba.com/a/import-error-relative-no-parent
python flask celery daemon systemd
1个回答
0
投票

固定的。这是因为我有一个名为 "py "的文件夹。

-_-好烦人

© www.soinside.com 2019 - 2024. All rights reserved.