2014-10-18 3 views
0

У меня есть приложение django. Я добавил сельдерей. В приложении django у меня есть пакет с именем 'parser', 'api'. Я настроил сельдерей, следуя следующему руководству: First steps with Django. В пакете парсера у меня есть 'models.py'. Вы делаете 'task.py' package 'api'. Когда я пытаюсь сделать 'от моделей импорта парсеров' в пакете api. Я получаю следующее сообщение об ошибке: названные модели Нет модуляКак импортировать правильный пакет (python-django)

я посмотрел и обнаружил, что следующий файл импорта: Библиотека/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) 

Может как-то сказать мне Импортирует правильный пакет?

ответ

0

'from parser import models'

Вы должны использовать так:

from parser.models import ClassName 

где ИмяКласса это имя класса, который вы хотите импортировать

или просто

import parser.models as models 
+0

я получаю ту же ошибку снова. – Krasimir

+0

Что такое базовый каталог, который вы запускаете из сценария? Похоже, вы импортируете по умолчанию python [модуль синтаксического анализатора] (https://docs.python.org/3.3/library/parser.html) вместо одного в своем каталоге – Zav

+0

Может быть, попытаться переименовать парсер во что-то еще? – Zav

Смежные вопросы