2016-12-21 1 views
0

私はCutyCaptxvfb-runを使ってウェブページのスクリーンショットを撮るtasks.pyに単純な関数を持っています。スクリーンショットは、OS pythonライブラリに送られたコマンドとして取得されます。また、関数を呼び出すcall.pyという別のスクリプトもあります。CutyCaptがセロリのデシリアライズエラーをスローする

この機能は、call.py(ウェブページにアクセスし、スクリーンショットを撮ってローカルフォルダに保存する)から通常の機能として実行すると完全に機能しますが、.delayを追加してセロリで実行すると、私は次のエラーを取得する:

[2016-12-21 13:17:52,649: INFO/MainProcess] Connected to amqp://******************************* 
[2016-12-21 13:17:52,851: INFO/MainProcess] mingle: searching for neighbors 
[2016-12-21 13:17:54,665: INFO/MainProcess] mingle: all alone 
[2016-12-21 13:17:55,469: INFO/MainProcess] [email protected] ready. 
[2016-12-21 13:18:01,470: CRITICAL/MainProcess] Can't decode message body: ContentDisallowed(u'Refusing to deserialize untrusted content of type pickle (application/x-python-serialize)',) [type:'application/x-python-serialize' encoding:'binary' headers:{}] 

body: '\x80\x02}q\x01(U\x07expiresq\x02NU\x03utcq\x03\x88U\x04argsq\x04U http://www.reddit.com/q\x05\x85q\x06U\x05chordq\x07NU\tcallbacksq\x08NU\x08errbacksq\tNU\x07tasksetq\nNU\x02idq\x0bU$518f96eb-e132-4261-984b-255fcb5b2252q\x0cU\x07retriesq\rK\x00U\x04taskq\x0eU\x15tasks.take_screenshotq\x0fU\ttimelimitq\x10NN\x86U\x03etaq\x11NU\x06kwargsq\x12}q\x13U\nserializerq\x14U\x06pickleq\x15su.' (278b) 
Traceback (most recent call last): 
    File "/usr/local/Desktop/celery/venv/local/lib/python2.7/site-packages/celery/worker/consumer/consumer.py", line 551, in on_task_received 
    payload = message.decode() 
    File "/usr/local/Desktop/celery/venv/local/lib/python2.7/site-packages/kombu/message.py", line 192, in decode 
    self._decoded_cache = self._decode() 
    File "/usr/local/Desktop/celery/venv/local/lib/python2.7/site-packages/kombu/message.py", line 197, in _decode 
    self.content_encoding, accept=self.accept) 
    File "/usr/local/Desktop/celery/venv/local/lib/python2.7/site-packages/kombu/serialization.py", line 253, in loads 
    raise self._for_untrusted_content(content_type, 'untrusted') 
ContentDisallowed: Refusing to deserialize untrusted content of type pickle (application/x-python-serialize) 

私は私のコードでは、現時点ではいずれのデシリアライズ環境設定/呼び出していないのです。以下のように私はそれが(それが働いている場合)、私が得る典型的な出力を所有だ上で機能を実行する検索する場合

:この出力が問題であるならば、私は思ったんだけど

QFont::setPixelSize: Pixel size <= 0 (0) 
QFont::setPixelSize: Pixel size <= 0 (0) 
QFont::setPixelSize: Pixel size <= 0 (0) 
QFont::setPixelSize: Pixel size <= 0 (0) 

...私は、任意の隠れ試してみましたscreenshotコマンドからのエラー出力ですが、cutycaptは同じ逆シリアル化エラーをスローします。 tasks.pyの他の関数は同じエラーをスローしません。何か案は?

答えて

0

このエラーは、セロリのタスクを開くことによって、引き起こされたがvirtualenvの中tasks.pyファイルが、セロリが正しくインストールされていませんvirtualenvののマスターcall.py外を実行しています。

関連する問題