2

Python で Amazon EC2 を使用しようとしています。セロリから最初のサンプルを実行しようとすると、RabbitMQ をローカルで使用すると正常に動作し、EC2 に依存している場合は常に次のメッセージが表示されます: [2012-07-25 15:14:33,842: INFO/MainProcess ] ブローカーからタスクを取得しました: celery_test.add[2eed1b15-fda7-4036-be92-a7fd921f0f5d] [2012-07-25 15:14:33,881: WARNING/MainProcess] タスク ハンドラー エラー: PicklingError("Can't pickle : attribute lookup _hashlib.HASH が失敗しました",)

どのポイント/オブジェクトでピクルに失敗しているのか、よくわかりません。

コードはサンプルからのものです。

@celery.task
def add(x, y):
   return x + y

そして、私はそれを次のように呼びます: add.delay(4, 4)

私が間違っていることのヒントはありますか?

ありがとう!

4

1 に答える 1

0

カスタムビルドの Python を使用していますか? ヘッダーhashlibが不足しているため、モジュールが正しくビルドされなかった可能性があります。サーバー上のPython CLIopenssl-devで手動で実行して確認できます。import hashlib

于 2013-01-22T00:33:24.527 に答える