我有一個運行在覆盆子pi上的python 3.x客戶端。它通過在PI上進行酸洗並在服務器上取消打開,向運行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.4蟒蛇版的酸洗工作與3.2版相同?
感謝
更新:
的提示用泡菜工具@Dilettant感謝。我在醃菜中發現了一個區別:3.4版本將這個菜單作爲picamera條目進行醃製,3.2將它作爲一個元組保留下來。
3.4結果 - >
530:Q B輸入36
532:K BININT1 0
534:X BINUNICODE '分辨率'
549:Q B輸入37
551:C全局「picamera.mmalobj PiCameraResolution '
3.2 version -->
830:q B輸入55 832:\ X88 NEWTRUE
833:X BINUNICODE '分辨率'
848:Q B輸入56
850:M BININT2 720
853:M BININT2 480
856:\ 86 TUPLE2
當我修復它,我將發佈結果
在Python 3中添加了協議版本4。4 - 所以也許試圖強制一個較低的協議版本?如果這沒有幫助,也許通過pickletools獲得更多細節? – Dilettant
@Dilettant這個問題與協議4無關。如果是這樣,錯誤會很快發生 – ppperry
我沒有檢查協議,並且都報告了默認值3 –