[英]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.