如何导入正确的包(python-django)

时间:2014-10-18 09:24:01

标签: python django celery python-import django-celery

我有一个django应用程序我添加了芹菜。在django应用程序中,我有一个名为' parser' ' api' 的软件包。我按照以下教程配置了芹菜:First steps with Django。在解析器包中,我有' models.py' 。你是' task.py' package' api'。当我尝试在api包中使用解析器导入模型' 时。我收到以下错误:没有名为models的模块

我查看并发现以下导入文件: lib / python2.7 / lib-dynload / parser.x86_64-linux-gnu.so

webapp/               
  manage.py         
  api/       
    __init__.py
    models.py
    views.py
    tasks.py
    ...
  parser/       
    __init__.py
    models.py
    views.py
    ...
  settings/
    __init__.py
    base.py
    celery.py
    dev.py
    live.py
    local.py
    urls.py
    wsgi.py

如果我需要' models.py'解析器包。用于启动芹菜的命令如下:celery -A settings worker --loglevel=info。当我在manage.py中运行芹菜时,请选择正确的文件:python manage.py celery -A settings worker --loglevel=info

API / task.py

from __future__ import absolute_import, division, print_function, unicode_literals
import time
from celery import task
from parser.models import FileUploadProcess # Error import


@task()
def test_task(param1):
    print("Test task called. Param: {}".format(param1))
    return 42


@task()
def parse_file(file_candidate, candidate_id):
    FileUploadProcess(candidate_id=candidate_id, is_process=True).save()
    # parse file
    time.sleep(15)
    FileUploadProcess.objects.filter(candidate_id=candidate_id).update(is_process=False)

能以某种方式告诉我Imports正确的包装吗?

1 个答案:

答案 0 :(得分:0)

  

'来自解析器导入模型'

你需要使用是这样的:

 from parser.models import ClassName

其中ClassName是您要导入的类的名称

或只是

 import parser.models as models