問題タブ [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 に答える
991 参照

python - パラメータを取るコンテキストマネージャで何かをラップするデコレータを作成するにはどうすればよいですか?

デコレーター内でコンテキストマネージャーを使用する方法と、デコレーターで作成されたオブジェクトを装飾された関数に渡す方法、およびパラメーター付きのpythonデコレーターを見てきましたが、2つを組み合わせようとしています..しかし、苦労しています私の頭を丸めてください。

@wrapドキュメント文字列が保持されるかどうかはわかっているので、可能であればfunc tools デコレータを使用してこれを行うことをお勧めします。

私がやりたいことはこれです:

私はこれがこのように機能するとは思わない. メソッドreturn_employee_namesは接続の反対側のサービスにある. 関数呼び出しを返すだけですか?もしそうなら、どうやってパラメータを渡すのですか?

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

python - PYRO4 - Errno 10061 接続が拒否されました

PYRO4 と Python 2.7 を使用して、クライアント マシンを別のネットワークのサーバー マシンに接続しようとしています。

私のサーバーコードは次のとおりです。

クライアントコードは次のとおりです。

ただし、サーバーを実行すると、次のエラーが発生しました。

この問題を修正するために 8 時間以上探していますが、永遠に修正されることはないようです。どなたか解決策をご存じの方がいらっしゃればお願いします。

注: 1. ルーターの背後でサーバーを実行しているため、ポート 5555 をプライベート IP アドレスに転送しました。また、オンラインサービスでポートをテストし、正しく開いていました。

  1. ファイアウォールとウイルス対策ソフトウェアを閉じました。
0 投票する
0 に答える
1774 参照

uri - Python: Pyro: OpenOPC: 接続に失敗しました

Python 用の OpenOPC を Pyro と組み合わせてセットアップしようとしています。OPC サーバーに接続しようとすると、次のエラーが表示されます。

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

これを調べたところ、Pyro がサーバーをループバック アダプターにバインドしているようです (外部から見えないようにしています)。

私がこれまでに試したこと:

etc/hosts ファイルを編集します。

これはうまくいきませんでした。

Pyro から configuration.py を編集します。

これもうまくいきませんでした。また、Pyroネームサーバーを再起動/再起動した後。

誰かがそれを機能させるために他に何ができるか考えていますか? Windowsコンピューター(OPCサーバーと同じもの)でOpenOPCクライアントも実行しましたが、これは機能しました。Windows コンピューターと Ubuntu コンピューターで同じバージョンの Pyro を使用しています。

編集: OpenOPCService.py も変更しました:

これもうまくいかない…

誰でも助けてもらえますか?これまでのところ成功することなく、これに1日以上取り組んでいます...

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

python - Pyro4.proxy(uri) 呼び出しを実行しようとすると、接続されていないというエラーが発生し続けます

Pyro4 に問題があり、Python サーバーに接続しようとしても接続できません。しかし、私が知る限り、サーバーは正常に動作しています。「接続されていません」という問題が常に発生します。接続されていない場合、オブジェクトに対してpython関数呼び出しを行うことはできません。

環境で実行されているものをリストすると、次のようになります。

私が言える限り、すべてが良さそうです。私はこのようにCASAを始めました:

これは CASA (ネームサーバー) コンソール出力です -- (実行中)

注: NS_HOST を localhost の代わりに IP アドレスに設定しようとしましたが、問題には影響しませんでした。

手順を手動で実行するとどうなるかのサンプルを次に示します

これが起こる原因は何ですか?この種のエラーを追跡する方法はありますか? 問題を解決するためのより深いレベルのデバッグが好きですか?

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

python - Pyro4 が COMMTIMEOUT 後に接続を閉じるのを防ぐにはどうすればよいですか?

次のような状況があります。私の Pyro4 プロジェクトには、サーバーとクライアントがあります。サーバーには、同じコールバック オブジェクトで 2 つのコールバックを呼び出す必要があるメソッドが含まれています。したがって、クラスCallbackには と の 2 つのコールバック メソッドがCallback()ありSecondCallback()ます。これらのコールバック メソッドの呼び出しの間には、多少の遅延があります。を呼び出して、私の例でこの遅延をシミュレートしましたtime.sleep

Pyro4 ( Pyro4.config.COMMTIMEOUT) にタイムアウトを設定する必要があります。これがないと、Pyro4 デーモンがrequestLoopメソッドから抜け出せないからです。これは、コールバック メソッドを 1 つだけ呼び出す場合には完全に機能しますが、2 つ目のコールバック メソッドを呼び出す必要がある場合、Pyro4 コールバック デーモンは、最初のコールバック メソッドが呼び出された後 + タイムアウトして接続を閉じます。

タイムアウトをより大きな値に設定しようとしましたが、このタイムアウトは、requestLoopメソッドが loopCondition を処理するまでブロックする時間でもあります。

私の問題を示すスクリプトの例を以下に示します。Pyro4 ネームサーバーを起動した後、サーバーを起動して起動する必要があります:

python -m Pyro4.naming

python test.py -s

その後、新しいコマンド ウィンドウでクライアントを起動します。

python test.py

Test.py

このスクリプトの結果:

Server:

Client:

私の最後の質問は: 2 番目のコールバックが呼び出されたときに COMMTIMEOUT が期限切れになった後、Pyro4 が接続を閉じないようにするにはどうすればよいですか?

この情報がすべて理解できるほど明確であることを願っています。

ご協力ありがとうございました。

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

python - Pyro4 クライアントがメッセージを受信しない

サイズが特定のしきい値を超えたときに、Pyro4 サーバー (バージョン 4.39、serializer= pickle) から単純な numpy 配列を取得する際に問題があります。サーバーはリクエストを処理して返信しますが、クライアントはハングしたままです

コードは以下のとおりです。

サーバーコード:

クライアントコード:

サーバー出力: (200, 50000) アップおよび待機中 ... データが要求されました

そのため、Pyro サーバーはクライアントからのリクエストを処理してデータを返しているように見えますが、クライアントはそれを取得せず、メッセージの受信を無期限に待機したままになります。

PS: - 小さいサイズの配列 (200,5000) に対して同じコードが機能します。

何が問題なのか考えている人はいますか?

あなたの助けは大歓迎です、

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

python - Pyro4 プロキシをインデックス可能にする

Pyro4 プロキシをインデックス可能にしようとしています。これをテストするために、http://pythonhosted.org/Pyro4/intro.html#simple-exampleから挨拶の例を取得し、それを変更しました。

サーバ:

クライアント:

[] 表記はサーバーでは機能しますが、クライアント プロキシでは機能しません。私は得る:

TypeError: 'Proxy' オブジェクトはインデックス作成をサポートしていません

しかし、__getitem__仕事をするために直接呼び出します。

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

python - Pyro4, object changes class (the State patern) but Proxy does not see it

In an application I use a low level library and run it in a separate process. The connection to the process is done with Pyro4.

The library needs initialization before the work and release of resources after. Thus, I implement the State pattern to have both states nicely separated.

The library is embedded into an object (which is called by Pyro4.Daemon). It has initialization method, which does necessary procedures and changes the __class__ of the object to the "ready" one, which has all the methods to call the library.

However, Pyro4.Proxy does not see the object change its' methods after the initialization method is called. Though, if you look at the actual object (in a separate interpreter, running the Pyro4.Daemon in a thread) -- the __class__ does change and everything is fine there. The problem is on Pyro4.Proxy side.

So, is it possible to change the __class__ when working with Pyro4? Am I just doing something wrong?

PS

It seems Pyro4.Proxy grabs the methods of the remote object when you call it the first time. And then the methods are frozen. Could I "refresh" this procedure somehow, ask Proxy to check out the methods again?

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

python - Pyro4 での AttributeError

Pyro4 でオブジェクトを送信しようとしています。これは私のサーバーコードです:

そして、私のクライアントは次のようになります。

このエラーが発生します: AttributeError: 'module' object has no attribute 'Player'

何か意見はありますか?

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

python - Pyro - Name Server で HMac キーを使用するには? CommunicationError: hmac キー構成が対称ではありません

私は Pyro 4.34、Python 2.7、Jython 2.7 を使用しています。

ネームサーバー。次のようにネームサーバーを起動できます。

パイロサーバー。ドキュメント_pyroHmacKeyには、Pyro デーモンで属性を設定できると記載されていますが、locateNSメソッドはNamingError cannot find Name Server.

の API をlocateNS見ると、 という引数があることがわかりますhmac_key。_pryoHmacKey を取り除き、代わりにその arg を使用すると、Pyro Server は問題なく起動できます。

クライアント。ドキュメントには、次の_pyroHmacKey属性を設定できると記載されていproxyます。

ただし、メソッド on への最初の呼び出しは次のproxyエラーで失敗します。