問題タブ [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 - dill を使用してクラス定義をシリアル化する方法は?
Python pickle: deal with updated class definitionsへの回答で、dill
パッケージの作成者は次のように書いています。
「わかりました、この機能を github の最新リビジョンに追加しました。思ったよりもはるかに少ないトリックで実装されました...ピクルでクラス定義をシリアル化するだけで、出来上がりです。」
それをインストールdill
していじくり回したので、実際にこの機能を でどのように使用するかは私には明らかではありませんdill
。誰かが明確な例を提供できますか? クラスインスタンスをピクルし、クラス定義もシリアライズしたいと思います。
(私は python を初めて使用しますが、この機能は非常に重要だと思われます。なぜなら、オブジェクトをピクルするとき、オブジェクト (シミュレーションの結果である可能性があります) を見ることができるという保証にできるだけ近づくことができるからですクラス定義の後の未来が変更された可能性があり、簡単にアクセスできる方法ですべての変更を追跡していない.)
python - 紹介者、紹介者、親と子
私はディルパッケージを試しています。具体的には検出モジュールであり、リファレント、リファラー、親、子の意味を直感的に理解するのに苦労しています。
参照は、一部のデータへのアクセスを可能にする値です。
そして参照対象は参照されるオブジェクトですよね?
したがって、次のコードでは:
an_instance, an_instance2, an_instance3
の指示対象は でa_list
あり、MyClass
も の指示対象になりますがa_list
、チェーンの 1 レベル上の深さですか?
したがって、参照->
を意味すると、参照対象のチェーンは次のようになります。
これは次のように見られますか?
逆にa_list
、リファラーは別のレベルの深さan_instance
ですか?an_instance2, an_instance3
MyClass
リファラーのチェーンを作成する:
そして、これも考えられるでしょうか:
参照、継承、およびコンテナーが一致する場所と一致しない場所について、誰かが明確な説明を提供できますか?
python - リファレント、リファラーのチェーンの例
Dill パッケージでさらに作業を進めます。昨日投稿されたのは、リファレント、リファラー、継承、およびコンテナーに関する無知の例です。答えは洞察に満ちていましたが、リファラーとリファレント チェーンのいくつかのレベルの深さを示す例を思いつくのにまだ苦労しています。
昨日、私はそれがそのクラスにinstance
なるだろうと思っていました。referrer
ディルのドキュメントではchildrenがreferrerであるため、その場合のchildはgrandchilddepth=2
になりますよね? そして、それは、別のものを参照する別のものを参照する(指し示す)でしょうか?object
object
object
少なくとも 2 の深さのリファレントとリファラーのチェーンを持つオブジェクトの例は何でしょうか?
検討:
戻り値:
ここで具体的にlist
オブジェクトを見ると、単一の参照先(親)great_grand_parent
は文字列「ヘンリエッタ エンシェント ワン」です。
And the referrers (Children) (result of gc.get_referrers()
, filtered by specified object-type) contains two objects: A list
that includes the string 'Henrietta Ancient One', and the string
Henrietta Ancient One. (depth=2 and depth=1 return the same result.)
How can I make an object for which Dill can return:
- Two distinct depths of referrers
- Two distinct depths of referents
python - パッケージ内の並列pythonおよびメソッドで「ImportError: No module named」を取得する
いくつかの分散ベンチマークを実行するために、並列 python を使用しようとしています (基本的に、中央サーバーから一連のマシンでいくつかのコードを調整して実行します)。機能を別のパッケージに移動するまで、私が持っていたコードは完全に正常に機能していました。それ以来、私は取得し続けImportError: No module named some.module.pp_test
ます。
私の質問は実際には 2 つあります。誰かが でこの問題に遭遇したpp
ことがありますか?もしそうなら、どうすれば解決できますか? dill
( )を使用してみimport dill
ましたが、役に立ちませんでした。また、追加のインフラストラクチャを必要としない、parallelpython の適切な代替品はありますか?
私が得る正確なエラーは次のとおりです。
コードは次のように構成されています。
は次のtest.py
ように実装されます。
ながらpp_test.py
:
python - Dill モジュールの BadItem の良い例
私はdetect
ディルの方法を探求しており、悪いアイテムの良い単純な例を探しています - ディルではピクルできないものです。
私は最初にプロセスを考えて試しました:
detectbaditems
パイプをシークできないため、ディルがシークを使用する場合、これは予想されることです。
それから私は、確かglobals()
に提供できるものがあると思いました。が削除されるIOerror
まで同じものを再度提供し、その後、次のようになりました。proc
dill.detect が悪いアイテムとして返すアイテムの簡単な例は何ですか?
python - 依存関係を持つ Python 関数をシリアル化する
StackOverflow に関する多くの推奨事項 (dill、cloudpickle など) に従って、依存関係を持つ Python 関数をピクルする複数のアプローチを試しましたが、すべてが私が理解できない根本的な問題に遭遇しているようです。
インポートされたモジュールから関数をピクルしようとするメイン モジュールがあり、それを ssh 経由で送信してピクルを解除し、リモート マシンで実行します。
したがって、メインは次のとおりです。
リモート マシンで次の操作を行います。
pickle されて送信される関数が main 自体で定義されたトップレベルの関数である場合、すべてが機能します。それらがインポートされたモジュールにある場合、ロード機能は「module modulea not found」タイプのメッセージで失敗します。
モジュール名が関数名とともにピクルされているようです。ピクルスを「修正」して依存関係を削除する方法、またはレシーバーにダミーモジュールを作成してピクル解除の受信者にする方法がわかりません。
どんなポインタでも大歓迎です。
--プラサンナ