問題タブ [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.

0 投票する
1 に答える
1552 参照

python-2.7 - Pyro.errors.ProtocolError: 接続に失敗しました

OpenOPC ライブラリを使用して OPC サーバーに接続しています。ローカルの Matrikon OPC サーバーからは正常に読み書きできますが、別のマシン (別のホスト) から読み込もうとするとエラーが発生しますPyro.errors.ProtocolError: connection failed

接続用のコードはこちらです。

コードはコンストラクターに到達しません。

ありがとう!

0 投票する
1 に答える
296 参照

python - Pyro: サーバーからクライアントにクラスを渡し、クライアント側でそのクラスのインスタンスをインスタンス化することは可能ですか?

高レベルの概要:ファイルと何らかの関数をserver.py含むクラスがあり、両方ともサーバーに保存されています。また、リモートで実行され、pyro を使用してサーバーに接続する もあります。サーバーからクライアントにクラスを渡し、クライアント側で関数を実行できる方法はありますか?WorkTask.pyexecuteclient.pyWorkTaskWorkTask.execute()

0 投票する
1 に答える
719 参照

macos - PyRO 4 - 登録されたオブジェクトを見つけようとするとルックアップが失敗します

私はこの問題と約 1 週間戦っていますが、解決策を見つけるためにどこを見ればよいかわかりません。

タイトルが示すように、pyro オブジェクトの登録に成功するとすぐに、それを操作するために NS でそれを見つけようとしますが、ルックアップは失敗します。

状況をより明確にするために、コードの簡略版を投稿します。

Server は PyRO NS が起動するクラスです:

TextAnalyzer クラスは、ファイルに関する統計を行うために使用するクラスです。

接続クラスは、NS、sftp、および ssh 接続でオブジェクトを見つけるのに役立つすべてのメソッドを提供し、実行中のオブジェクトの PID を見つけます...

だから、基本的に、これは私がやっていることです。

問題は、NS で find_obj() メソッド (Connection クラスに含まれる) 内でリモート オブジェクトを見つけようとしているときにルックアップが失敗することですが、リモート オブジェクトが正常に登録されたことは確かです。

与えられたエラーは、Pyro4.errors.NamingError からの「不明な名前」です。

なぜ機能しないのか、まったくわかりません...

その他の仕様: PyRO 4 と Python 3.4 を使用して、Mac OS X Mavericks で実行しています。

返信ありがとうございます。

0 投票する
1 に答える
77 参照

python - Pyro のグローバル オブジェクト

関数を RPC 経由でエクスポートしたいと考えています。したがって、Python には Pyro4 を使用します。これはこれまでのところ機能します。ここで、RPC サーバーに属するデータに対してもその関数を機能させたいと考えています。これは可能ですか?もしそうなら、どのように?

listIwantToWorkWith にアクセスするには myrpcstuff.myrpcFunction() に何を書く必要がありますか、またはリストをグローバルにマークする必要がありますか?

0 投票する
1 に答える
109 参照

nameservers - Pyro.Naming.NameServerStarter ドキュメント

Pyro.Naming.NameServerStarter.start() を使用したいのですが、ドキュメントが見つかりません。'pyro-ns' よりも優れています。また、Pyro モジュールを更新したばかりなので、なぜ y が Pyro4 モジュールを取得できないのかわかりません。Pyro モジュールしか到達できないので、Pyro4.naming.startNS() を試すことさえできません。

0 投票する
2 に答える
535 参照

python - クラス定義とともにPythonオブジェクトをシリアライズする

Python を使用して RPC 呼び出しを行う方法を理解しようとしています。クラスを定義し、そのクラスのインスタンスを作成するメソッドを公開する愚かなサーバーがあります。

のインスタンスを取得したいクライアントGreeter:

問題は、ユーザー定義オブジェクトのインスタンスを返すことを許可するフレームワーク、またはオブジェクトの属性を持つ dict のみを返すフレームワーク (たとえば、Pyro4) を見つけられなかったことです。

以前は Java RMI を使用していました。この場合、必要に応じて、クライアントがコンパイル済みのクラスをダウンロードできるサーバー上のコードベースを指定できます。Pythonにこのようなものはありますか?クライアントがクラスの完全に機能するインスタンスを持つことができるように、オブジェクトをクラスのバイトコードと一緒にシリアル化できるフレームワークでしょうか?

0 投票する
1 に答える
409 参照

python - Pyro & WSGI ラズベリーパイ

私は現在、作業中のロボットを制御できる Web アプリケーションに取り組んでいます。何らかの理由で、Pyro を正しく動作させることができません。すべてが機能しているように見えますが (エラーはありません)、Web ページのボタンをクリックしても「サーバー」のメソッドが呼び出されません。

ここに私の「サーバーコード」があります:

出力が表示されるため、Robot() クラスがセットアップされていることはわかっていますが、他のメソッドはどれも出力を書き込んでいません。

Webページが呼び出す「クライアントコード」は次のとおりです。

robot が URI に設定されており、parameters 変数に正しい情報が含まれていることは既に確認済みです。そして、コードは必要に応じて「if」ステートメントに流れています。しかし、Robot() クラスでセットアップが呼び出された後は、どのメソッドも呼び出されません。誰にもアイデアはありますか?

0 投票する
1 に答える
1748 参照

python-3.x - Pyro4、受信: 十分なデータがありません

Pyro4 を使用してサーバー上で関数を実行しようとしています。コードを見てください: =========================Client================ ======

===========================サーバー===================== ====

========================ネーミングサーバー=======================

================================================== =========

エラーが発生しました: " Pyro4.errors.ConnectionClosedError: received: not enough data ". 以下の完全なスタック トレースを見てください。

メソッド(関数)に渡された関数をサーバーに実行させたい。

PS: Windows7、Python 3.4.1

同様の質問 ( How to send a function to a remote Pyro object ) を見つけましたが、うまくいきませんでした。コールバック デコレーター @pyro4.callback を使用しようとしましたが、公式の例 ( https://github.com/delmic/Pyro4/tree/master/examples/callback : server2.py, client2.py) でさえ機能しませんでした (python を使用) 3.4 および python 2.7) => メッセージのみ:「サーバー: クライアントへのコールバック 1 を実行しています」が表示され、何も起こりません。


ありがとう

0 投票する
1 に答える
266 参照

python-2.7 - Pyro4 は ConnectionClosedError をスローしません

Pyro 4.31 を実行しています。プロキシ オブジェクトがリモート オブジェクトへの接続を失ったとき (つまり、サーバーが突然シャットダウンしたとき) に、例外をキャッチできるようにする必要があります。

だから私はこのようなコードを持っています:

ある時点でこれが機能し、接続が失われた場合に ConnectionClosedError がスローされましたが、現在はサーバーがダウンしていても待機コマンドでハングし続けます。Pyro4 コードを調べたところ、待機コマンドは Event ブール値が True に設定されるまで待機するため、接続が失われると待機コマンドのブロックが解除される方法がわかりません。これは、サーバーがダウンしているときに実行することはまったく不可能です。サーバーがまだ稼働しているが、pyro デーモンをシャットダウンし、進行中のプロセスを突然強制終了すると、接続が閉じられたというエラーがスローされますが、サーバー全体がダウンしたときにそれが必要です。

非同期オブジェクトを使用しないと、これでも同じ問題が発生します (ハングするだけです):

では、接続が失われたことをどのように検出できますか?

0 投票する
2 に答える
368 参照

python - Pyron ns=True が機能しない

私はRPCとPyroに全く慣れていないので、その概念を理解しようとしています.私はそれのウェブサイトの例をやっています.ns=False.Iのときに動作しているにもかかわらず、ns=Trueを実行するとコードが動作しません.このエラーが発生しています:

Pyro4.errors.NamingError: ネームサーバーを見つけられませんでした

ipdb でデバッグすると、次のように表示されます。

CommunicationError: 接続できません: [Errno 111] 接続が拒否されました

デーモンを起動しない解決策は何ですか?