Django 在Ubuntu中使用systemd配置芹菜-模块路径故障

Django 在Ubuntu中使用systemd配置芹菜-模块路径故障,django,ubuntu,celery,systemd,Django,Ubuntu,Celery,Systemd,我使用UbuntuServer18.04,Django,我想在systemd中使用芹菜 我有以下错误: ModuleNotFoundError: No module named 'ph' May 02 21:02:55 ph-1c1m1t sh[2646]: Traceback (most recent call last): 我知道这是一个路径错误,但我尝试了应用程序的多种组合,但我无法解决它 项目结构为: username -projects -src - ph

我使用UbuntuServer18.04,Django,我想在systemd中使用芹菜

我有以下错误:

ModuleNotFoundError: No module named 'ph'
May 02 21:02:55 ph-1c1m1t sh[2646]: Traceback (most recent call last):
我知道这是一个路径错误,但我尝试了应用程序的多种组合,但我无法解决它

项目结构为:

username
 -projects
    -src
      - ph  
        - settings (folder)
        - celery.py 
        -urls.py   
配置文件

CELERYD_NODES="w1 w2"
CELERY_BIN="/home/username/env/prod/bin/celery"
CELERY_APP="ph.celery:app"
CELERYD_MULTI="multi"
CELERYD_OPTS="--time-limit=300 --concurrency=8"
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_LOG_LEVEL="INFO"
在systemd,芹菜。我的服务:

[Unit]
Description=Celery Service
After=network.target

[Service]
Type=forking
User=username
Group=username
WorkingDirectory=/home/username/env/prod/
EnvironmentFile=-/etc/celery/celery.conf
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
  --pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'

[Install]
WantedBy=multi-user.target

尝试在
/etc/芹菜/celery.conf
中指定
PYTHONPATH
。这应该指向包含
ph
包的文件夹

PYTHONPATH=/home/username/projects/src
CELERYD_NODES="w1 w2"
CELERY_BIN="/home/username/env/prod/bin/celery"
CELERY_APP="ph.celery:app"
CELERYD_MULTI="multi"
CELERYD_OPTS="--time-limit=300 --concurrency=8"
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_LOG_LEVEL="INFO"

不要删除带答案的问题。发布答案的人已经努力了。