3

ファイルにピクルス化(ダンプ)する単純なクラスがあります。OS Xではこれは正常に機能し、Windowsではこれは正常に機能します。

ただし、Windowsではオブジェクトを正常にロード/選択解除できます。Windowsがこのファイルを選択してディスクに保存すると、OS Xでは読み取れなくなります(ただし、Windowsでは通常どおり動作します)。

OS Xから返されるエラーは、requireクラスをインポートできないことです。

窓に何も漬けない限り、これはすべてうまくいくので、私は混乱しています!(それでも、Windowsでは正常に動作します)

行末かもしれないと聞きましたが、他の考えは、使用されているエンコーディングタイプがオペレーティングシステム間で異なることに関係している可能性がありますか?しかし、私はこの問題を完全に診断および/または解決するために何を試みるべきか本当にわかりませんので、どんな助けもいただければ幸いです!

4

2 に答える 2

5

最新のプロトコルバージョンでピクルスし、すべての場合にバイナリモードでファイルを開きます。それで問題は解決するはずです。

于 2009-11-17T13:42:24.370 に答える
3

これは行末になります - ascii モード 'r' または 'w' で ASCII pickle オープン ファイルを使用している場合 - バイナリ モード 'rb' 'wb' でバイナリ pickle オープンを使用している場合。docstring から:

デフォルトのプロトコルは 0 で、下位互換性があります。(プロトコル 0 は、テキスト モードで開いたファイルに書き込み、正常に読み戻すことができる唯一のプロトコルです。0 よりも高いプロトコルを使用する場合は、酸洗いと酸洗い解除の両方で、ファイルがバイナリ モードで開かれていることを確認してください。)

于 2009-11-17T13:47:27.793 に答える