私はラズベリーpiで動作するpython 3.xクライアントを持っています。これは、PIをpickleingしてサーバ上でunpickleを実行することによって、winpython 3.4を実行しているサーバにカメラ設定情報を提供します。3.2(wheezy)と3.4(jessie)の間の酸洗されたデータの違いは何ですか?
piは喘鳴とのpython 3.2を実行しているとき、これが正常に動作しますが、私はPI走行ジェシーとPython 3.4でそれをしようとすると化したりunpickle化したり、エラーで、サーバー上の失敗:
File "C:\Python34\Lib\site-packages\dill\dill.py", line 260, in loads
return load(file)
File "C:\Python34\Lib\site-packages\dill\dill.py", line 250, in load
obj = pik.load()
File "C:\Python34\lib\pickle.py", line 1036, in load
dispatch[key[0]](self)
File "C:\Python34\lib\pickle.py", line 1323, in load_global
klass = self.find_class(module, name)
File "C:\Python34\Lib\site-packages\dill\dill.py", line 406, in find_class
return StockUnpickler.find_class(self, module, name)
File "C:\Python34\lib\pickle.py", line 1373, in find_class
__import__(module, level=0)
**ImportError: No module named 'picamera'**
あなたとエラーから見ることができます、これは私がサーバーにDillをインストールした後ですが、私はまだ同じ基本的なエラーを取得、それはpicameraを見つけることができません。
私はPICameraをサーバーにインストールしましたが、もちろんこれはRaspberry Iファイルを探す際に失敗しますのでアンインストールしてください。
3.2バージョンと同じように動作する3.4のpythonバージョンの酸洗いをする方法があれば、誰にも分かりますか?
おかげ
更新:ピクルスツールを使用するためのヒントについて
@Dilettant感謝。私はpickle内に違いがあることを発見しました:3.4バージョンは、このアイテムをピクチャエントリとしてピクルスします。3.2はタプルとして残します。
3.4結果 - >
530:Q BINPUT 36
532:K BININT1 0
534:X BINUNICODE '解像度'
549:Q BINPUT 37
551:GLOBAL「picamera.mmalobjのPiCameraResolution C 「
3.2 version -->
830:Q BINPUT 55 832:\ X88 NEWTRUE
833:X BINUNICODE '解像度'
848:qはBINPUT 56
850:M BININT2 720
853:M BININT2 480
856:\ x86のTUPLE2
私はそれを修正するとき、私は結果
プロトコルバージョン4がPython 3で追加されました。4 - おそらく、より低いプロトコルバージョンを強制しようとしますか?これが助けにならないのであれば、ピックレットツールで得られる詳細は多分でしょうか? – Dilettant
@Dilettantこの問題はプロトコル4とは関係ありません。エラーが発生した場合は、ずっと早くエラーが発生します – ppperry
プロトコルをチェックして、両方ともデフォルト値の3を報告しています –