spo*_*boy 6 python eclipse pydev celery
我在Eclipse/PyDev中使用我的Python/Celery项目遇到了以下问题.我在myapp.tasks模块中定义了我的任务函数,如下所示:
@celery.task(max_retries=None)
def mytask(parm1):
...
myapp.myfunction(parm1)
...
Run Code Online (Sandbox Code Playgroud)
然后,在另一个模块中,我希望向正在调用该函数的任务发送重试信号.所以,我喜欢这样:
import myapp.tasks
...
def myfunction(parm1):
...
raise myapp.tasks.mytask.retry(countdown=60)
Run Code Online (Sandbox Code Playgroud)
由于某种原因,PyDev用最后一行标记错误说:'导入的未定义变量:重试'但代码实际上有效.这是一个不识别装饰者的PyDev问题,还是我在这里做错了什么?
Pydev 显然使用静态分析,这对于动态语言来说相当奇怪。但我现在添加了一个 hack,应该可以让 PyDev 成功地静态分析 celery 模块。您可以通过安装 3.0 分支来尝试一下:
pip install https://github.com/celery/celery/zipball/3.0
Run Code Online (Sandbox Code Playgroud)