問題タブ [pyro]
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 - Pyro の NameServer を正しい方法でラップする
私は、Pyro のネーム サーバーを、好きなように開始および停止できるようにする、より便利なオブジェクトにワープしようとしています。たとえば、次のようなことができるようにしたいと思います
NameServer クラスの次の定義を使用します。
ここまでは順調ですね。期待どおりに動作します。ただし、Pyro4.naming.locateNS()
ネーム サーバーの実行中に別のスレッドからコマンドを実行すると、次に nameServer.stopNS() を呼び出したときに、プログラムがフリーズします。誰にも理由がありますか?そして、そのような NameServer ラッパーを作成するための最良の (少なくともより良い) 方法は何でしょうか。
python - 関数を Pyro に送信できません
Pyro 接続で math.sqrt を送信できますが、自分で定義した関数を Pyro 接続で送信できません。
実行すると、Pickle Function エラーが発生します。
受信モジュールと送信モジュールの両方に関数が定義されています。
そして私の受信側では:
繰り返しますが、接続を介して math.sqrt 関数を送信すると、予期される 3 が出力されますが、作成した関数を送信しようとすると、ピクル エラーが発生します。
cPickle.PicklingError: ピクルできません: 属性ルックアップ組み込み.function に失敗しました
ここでも、受信側モジュールと送信側モジュールの両方に、名前空間で定義された関数があります。
この問題を解決する方法を知っている人はいますか?
python - Ubuntu の Pyro4 Python アプリケーションで「socket.error: [Errno 101] Network is unreachable」
Python2.7 で Pyro4 を使用して単純なアプリケーションを実行しようとしています。2 つのプログラムがあります。1 つ目は、オブジェクトをその IP アドレスにバインドし、ネーム サービスも実行する server.py です。2 つ目は、同じネットワーク内のリモート PC で実行される client.py です。以下のコードは次のとおりです。
次のコマンドでネームサービスを開始しています。
コマンドを使用してIPアドレスを確認しましたifconfig
サーバー.py
client.py
ネーミングサーバーは問題なく起動するのですが、server.pyを実行するとタイトルの通りエラーが表示されます。
同じアプリケーションを Windows 環境でテストしたところ、エラーは発生しませんでしたが、Ubuntu 13.04 ではエラーが表示されました。
json - Python 3 での JSON を使用したカスタム クラスのシリアル化
JSON が dict でエンコードされたクラス情報を使用してシリアル化されたカスタム クラスをデコードしようとすると、問題が発生します。出来るだけ詳しくお伝えしたいと思いますので、長文になりますがご容赦ください。
ここで提供されている優れたチュートリアルを参照として使用しています。独自のクラスのエンコード/デコードの記述について詳しく説明しているセクションを参照しています。
私のパッケージモジュール構造は部分的に次のとおりです。
これらのモジュールにはそれぞれ独自のクラスがあります。common.serviceモジュールでServiceクラスのオブジェクトをシリアライズしています。これは基本的に Pyro 接続で使用します。
シリアル化コードは次のとおりです。
逆シリアル化コードは次のとおりです。
デシリアライズ中に問題が発生しています。ローカル変数の値は次のとおりです。
これが失敗する理由は、class _ がそのモジュール内のクラス名ではなく package.module 値を返すためです。技術的には、class _ は実際のクラスであるcommon.service.Serviceを保持する必要があります。このため、最後のステートメントinst = class (**args)_ は「TypeError: module object not callable」エラーで失敗しています。
importまたは importlib.import_module の両方がその最上位モジュールをインポートすることは知っていますが、私の場合、第 2 レベル モジュール内のクラスにアクセスするにはどうすればよいですか? 技術的には、2 番目のレベルがモジュールで、1 番目のレベルがパッケージであるため、取得できない pkg.module 内のクラスが必要です。
質問が理にかなっており、十分な調査が示されていることを願っています。明確にする必要がある場合は、より多くの情報があります。
編集: ユーザーの提案で解決された問題。
msbuild - パッチの Windows インストーラ XML 相対パス
Microsoft Team Foundation Server を使用して、アプリケーションのセットアップを管理および展開しています。私のセットアップは、相対パスを持つ WiX セットアップです。
pe コンポーネント
変数.wxi:
<Include>
<?define SourceFiles = "..\OutputFiles"?>
</Include>
セットアップは正しく構築されています。問題: Torch と Pyro を使用してアプリケーションのパッチを生成しています。操作されたビルド イベントと追加のリンカー情報を含む純粋な Wix パッチ プロジェクトを使用しています
(ビルド前 - Torch) (ビルド後 - Pyro) (リンカー追加パラメーター - wixmsp として出力)
パッチをビルドすると、579Failures が発生します。(1x)
エラー 776 コマンド ""C:\Program Files (x86)\WiX Toolset v3.8\bin\pyro.exe" Patch.wixmsp -out Patch.msp -t AnwendungBaseline diff.wixmst" はコード 103 で終了しました
。C:\ Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets
と (578x)
エラー 322 ファイル '..\SourceFiles\Anwendung.exe' が見つかりません。C:\Patch\Client\Upgrade\Setup\ComponentMain.wxs
ソースセットアップからのパスが正しく解決されていないと確信しています。誰でも私を助けることができますか?ロブ・アーンソン、ロブ・メンシング、ヒース・スチュワード? お願いします :)
python - Pyro: コールバックを実行できません
Pyro4 を使用して、サーバーからクライアントへのコールバックをうまく実行できませんでした。
サーバー スクリプトは次のようになります。
クライアントは次のようになります。
コマンド robotController.doCallback(callback) を実行すると、サーバーでメソッド doCallback が実行されますが、サーバーはクライアントにアクセスできません。以下を返します。
エラーの原因とその修正方法を知っている人はいますか? ありがとうございました!