this is the code which i am running:
from __future__ import absolute_import
from celery import Celery
celery1 = Celery(\'celery\',broker=\'amqp://\',backend=\'am
I had this issue together with pycharm and unittests, and want to add an additional answer. I have tested it with python 3 but assume the same happens if you use from __future__ import absolute_import
with earlier versions.
The root cause is described in the pycharm bug report https://youtrack.jetbrains.com/issue/PY-15889
Summary: If you run unittests in pycharm, it always adds the folder containing the test script to the beginning of sys.path
. If your celery.py
is in the same path, python will try to load it first.
Instead of changing file names I have resolved this by removing this folder from sys.path
before importing celery.py
in my ..._Test.py
test scripts.
# If running in pycharm, pycharm always adds the current path to the beginning (!) of sys.path
# I have not found a setting to fix this - so I just remove the path again
# This block can be removed once https://youtrack.jetbrains.com/issue/PY-15889 if fixed
import sys
import os
sys.path.remove(os.path.dirname(__file__))
import celery