簡體   English   中英

如何導入正確的包(python-django)

[英]How to import the right package (python-django)

我有一個已添加celery的django應用程序。 在Django應用程序中,我有一個名為'parser''api'的包 我按照以下教程配置了celery: Django的第一步 在解析器包中,我有'models.py' 您是否'task.py'包'api'。 當我嘗試在api包中執行“從解析器導入模型”時。 我收到以下錯誤: 沒有名為模型的模塊

我查看並發現以下導入文件: 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的命令如下: celery -A settings worker --loglevel=info 當我在manage.py中運行celery時,請選擇正確的文件: 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)

能以某種方式告訴我導入正確的包裹嗎?

“來自解析器導入模型”

您需要這樣使用:

 from parser.models import ClassName

其中ClassName是要導入的類的名稱

要不就

 import parser.models as models

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM