Trying out celery for django I ran into a problem with @task decorator. This is running on Windows 7.
In my celerytest.tasks module I have the following code
from celery import task
@task
def add(x,y):
return x + y
From the command prompt I run:
python manage.py shell
Trying to import my module from shell:
from celerytest.tasks import add
I get the following error:
>>> from celerytest.tasks import add
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "d:\...\celerytest\tasks.py", line 8, in <module>
@task
TypeError: 'module' object is not callable
I tried googling this for a long time, but it seems I am the only one in the world with this problem.
To fix this error, we need to change the import statement in “mycode.py” file and specify a specific function in our import statement. In the above code, we have imported “mymodule” function from “mymodule” module, so our compiler won't get confused and can execute the function mymodule().
The error “TypeError: 'module' object is not callable” occurs when the python compiler gets confused between function name and module name and try to run a module name as a function. In the above example, we have imported the module “os” and then try to run the same “os” module name as a function.
Once you integrate Celery into your app, you can send time-intensive tasks to Celery's task queue. That way, your web app can continue to respond quickly to users while Celery completes expensive operations asynchronously in the background.
Well, I was reading the documentation for 2.6.0 rc3, but installed 2.5.3.
http://ask.github.com/celery/django/first-steps-with-django.html
When using the import like this:
from celery.task import task
everything seems to work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With