【发布时间】:2016-02-11 23:16:30
【问题描述】:
您好,我正在使用带有 celery 的主管,以便在 django Web 应用程序中运行一些任务。 Celery 似乎发现/解决了问题,模型来自直接通过 github 安装的包。
http://pip.readthedocs.org/en/stable/reference/pip_install/#vcs-support
如上所述,软件包已安装/克隆到<virtualenv>/src 目录中。我想知道我的环境设置中是否缺少 supervisord.conf 文件(例如 PYTHONPATH)或其他东西以使这些已安装的软件包可用。我得到了一个
ValueError:无法解析相关模型
这似乎没有意义,因为应用程序作为一个整体可以与这些包一起正常工作。
版本
芹菜 - 3.1.18
主管 - 3.0b2
supervisord.conf
[program:celeryd]
command=/home/path/to/virtualenv/celery worker -A moi --loglevel=info
stdout_logfile=/var/log/celery/celeryd.log
stderr_logfile=/var/log/celery/celeryd.error.log
directory=/path/to/app
virtualenv 的结构看起来像这样
virtualenv/
- bin/
- lib/
- share/
- src/github-installed-egg
错误
File "/home/ubuntu/moi/lib/python3.4/site-packages/django/db/models/fields/related.py", line 1600, in resolve_related_fields
raise ValueError('Related model %r cannot be resolved' % self.rel.to)
ValueError: Related model 'ndptc_core_courses.Course' cannot be resolved
Web 应用程序使用 nginx 和 uwsgi 运行,并且运行良好。 uwsgi 配置文件中的 virtualenv 设置使这个工作。模型是由名称声明的外键,而不是模型对象本身。来自通过 pypi 安装的包的模型也可以正常工作,只是安装在 src 文件夹中的模型会导致问题。
【问题讨论】:
-
请发布您遇到的确切错误,您的配置等是什么
-
您是手动安装每个 VCS 软件包还是将它们包含在需求文件中?如果是这样,您可以显示 requirements.txt 文件中的行吗?也许
pip freeze的相关行也会有所帮助。 -
它们是需求文件的一部分“-e git+h ttps://ndptc-admin@bitbucket.org/ndptc-admin/ndptc-core.git#egg=ndptc”我把http 中有一个空格,所以它不会链接。
-
您能否粘贴/链接完整的 supervisord.conf 文件和相关的 supervisor.d/*.conf 文件,以及来自您的 virtualenv 内部和 vietualenv 外部的
pip freeze的输出?这个问题看起来很奇怪,我会先看看这些东西。
标签: python django celery python-3.4 supervisord