私は数週間実行してきたpickleを使用するpythonスクリプトを持っています。私は最近Dropboxをインストールして、マシンAでスクリプトを実行し、データをドロップボックスにpickleし、ドロップボックスからマシンBにデータをロードします。スクリプトのパスにあるファイルに書き込んでいました。 dropboxによって同期された別のファイルに書き込みます。Python:pickleがモジュールインポートエラーを生成する
私はデータをロードするために行くとき、私は次のエラーを取得する:
data = pickle.load(f)
ModuleNotFoundError: No module named 'pandas._libs'
しかし、この従来のラインが正常に動作します:実際に
import pandas as pd
、私はダンプだスクリプトを実行した場合(読み込むのではなく)データを読み込むと、正常に実行されます。
また、sys.pathを使用してパスが正しいことを確認しました。
何が問題なのですか?
これはpickle.load(f) – trob
から呼び出されています@SamCraig:いいえ、pickleはオブジェクトを(モジュール、名前)参照でロードします。あなたはタイプのソースを保存しないで、次回からロードできる場所を保存するだけです。 –
@SamCraig:この場合、オブジェクトは 'pd._libs'モジュールに存在することを示すピクルされています。明らかに、そのモジュールは他のマシンで利用できません。 –