問題タブ [dill]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - マルチプロセッシングとディルは一緒に何ができますか?
multiprocessing
Python でライブラリを使用したいと考えています。悲しいことに、multiprocessing
クロージャpickle
、ラムダ、または__main__
. この3つは私にとって重要です
幸いなことにdill
、より堅牢なピクルスがあります。どうやらdill
ピクルを機能させるためにインポート時に魔法を実行します
私はマルチプロセッシングのソース コードにアクセスできないため、これは非常に心強いことです。悲しいことに、私はまだこの非常に基本的な例を機能させることができません
どうしてこれなの?私は何が欠けていますか?multiprocessing
+のdill
組み合わせの制限は正確には何ですか?
JFセバスチャンの仮編集
serialization - mpi4py: 組み込みのシリアル化を置き換えます
MPI4PY の組み込みのシリアル化を dill に置き換えたいと思いPickle
ます。ドキュメントによると、クラス _p_Pickle には と という 2 つの属性が必要dumps
ですloads
。ただし、Pythonは、次のことを試すと、そのような属性はないと言います
-> AttributeError: タイプ オブジェクト 'mpi4py.MPI._p_Pickle' には属性 'dumps' がありません
どこdumps
にloads
行きましたか?
serialization - IPythonにディルをインストールするには?
最初に試してみconda install dill
ましconda
たが、インターネット上で見つけることができませんでした。
次に、両方.tgz
の.zip
ファイルをデフォルトの IPython ディレクトリにダウンロードしました:
https://pypi.python.org/pypi/dill
その後、次のコマンドを試し
conda install dill-0.2b1.zip
conda install "C:\<rest_of_the_complete_path>\dill-0.2b1.zip"
ました.tgz
。4回の試行すべてでエラーが発生しました:
No packages found matching:
私が間違っているのは何ですか?次のリンクにある例を繰り返そうとしています: http://nbviewer.ipython.org/gist/minrk/5241793
編集 1: https://pypi.python.org/pypi/dillからファイルをdill
実行してシステムにインストールしました。このステップは、システム python ( ) にインストールされましたが、Anaconda Python にはインストールされませんでした。通常のモジュール (たとえば) を両方にインポートできるため、これら 2 つの pythonは別のものであると想定しています。私のIPythonノートブックにはありません。.exe
dill
C:\Python27
numpy
cmd
dill
cmd
parallel-processing - load_balanced_view でピクルの代わりにディルを使用するにはどうすればよいですか
IPython を使用して、ピクルスの代わりに dill を並列に使用できることを知っています。
しかし、どうすればそれを有効にできdv.load_balanced_view()
ますか?
python - Python で Pathos を使用した大きなオブジェクトのマルチプロセッシング
コンピューターの複数の CPU を利用しようとしています。ただし、BeautifulSoup
オブジェクトの一部として関数によって返されるSQLAlchemy
オブジェクト は、pickle または cPickle で pickle 化できないため、任意の python オブジェクトを pickle できるように使用するパッケージのフォークであるpathosを使用しています。ピクルできないオブジェクトでディルをテストしたところ、うまくいったので、問題は解決すると思いました。ただし、pathos を使用すると、以前と同じ問題が発生します。主に、関数は完了しますが、結果は返されません。which complete で確認しましたが、multiprocssing
dill
pool.map
results = pool.amap(myfunc, myarglist)
results.get()
そうではありません。残念ながら、このページの html を投稿することはできず (公開されていません)、再現可能な問題の例を見つけることができませんでした。この回答には、大きなオブジェクトのマルチプロセッシングをトラブルシューティングするための関数が含まれていますが、残念ながら、それ自体Queue
では実装されていないようですpathos
(おそらくpool.map
関数内のフードの下でのみ)。私は0.2a1.dev
python 2.7でpathosのバージョンを使用しています(ソースからコンパイルする前にpipで依存関係がインストールされています)。キーボード割り込みのトレースバックは次のとおりです。
python - Dill を使用した Load Object での Python TypeError
後で使用するために、大きくて (おそらく非常に) pickle 化できないオブジェクトをファイルにレンダリングしようとしています。
側に苦情はありませんdill.dump(file)
:
しかし、ファイルをロードしようとしてい.pkl
ます:
次のエラーを返します。
class object
AudioObject は、上記の呼び出しが行われるよりもはるかに複雑 (かつ大きい) であり( SO answerから)、2 番目の引数を 経由dill
で送信する必要があるかどうかは不明です。または、この特定のオブジェクトに対して酸洗いへのアプローチが実行可能かどうかを判断する方法。
オブジェクト自体を少し調べます。
戻り値:
そして、これを含む(または明らかに指し示す)audiofile.analysis
という属性が含まれているようですaudiofile.analysis.source
audiofile.analysis.source.analysis