6

Eclipse/PyDev の Python/Celery プロジェクトで次の問題に直面しています。myapp.tasks モジュールでタスク関数を次のように定義しました。

@celery.task(max_retries=None)
def mytask(parm1):
    ...
    myapp.myfunction(parm1)
    ...

次に、別のモジュールで、関数を呼び出しているタスクに再試行シグナルを送信したいと考えています。だから、私はこれが好きです:

import myapp.tasks
...
def myfunction(parm1):
    ...
    raise myapp.tasks.mytask.retry(countdown=60)

何らかの理由で、PyDev は最後の行に「インポートからの未定義の変数: 再試行」というエラーをマークしますが、コードは実際には機能します。これはデコレータを認識しない PyDev の問題ですか、それともここで何か間違っていますか?

4

2 に答える 2

0

Pydev is apparently using static analysis, which is rather weird for a dynamic language. But I've added a hack now that should let PyDev successfully statically analyze the celery module. You can try it out by installing the 3.0 branch:

pip install https://github.com/celery/celery/zipball/3.0
于 2012-10-23T13:16:44.567 に答える