2009年12月6日日曜日

Python:分散オブジェクトPyro

Pythonの分散オブジェクト実装であるPyroを使おうと思いました。が、まずPython3.*に対応していないということで、エラーが出ます。Python3.*ではprint文が関数形式になりprint('abc')などとしないといけなくなったため、以前の print 'abc' 形式のところが全部エラーとなるようです(^^;

ということでPython2.*にしたのですが、2.6でも2.5でも

Traceback (most recent call last):
  File "first.py", line 9, in
    daemon=Pyro.core.Daemon()
  File "C:\Python25\Lib\site-packages\Pyro\core.py", line 575, in __init__
    self.validateHostnameAndIP()  # ignore any result message... it's in the log already.
  File "C:\Python25\Lib\site-packages\Pyro\core.py", line 633, in validateHostnameAndIP
    raise socket.error("no IP address known for daemon")
socket.error: no IP address known for daemon



のようなワケのわからないエラーに成ります。サーバを立ち上げるときにIPの指定とかが必要なのでしょうか?

3 件のコメント:

Unknown さんのコメント...

参考にしたソースが http://pyro.sourceforge.net/example.html の物じゃないかな?と思うのですがどうでしょうか?
上記のソースであれば当方でも動かなかった事を確認したのですが http://pyro.sourceforge.net/manual/8-example.html の 「Minimalist's Pyro - not using a Name Server」に関しては動作しましたが、こちらのソースもNGでしょうか?

当方は
WindowsXP SP3 Home + CPython-2.6.4
FreeBSD 8.0-Release + CPython-2.6.4
で動作することを確認しました

「Minimalist's Pyro - using a Name Server」のソースに関しては動作しませんでしたが・・・

Unknown さんのコメント...

度々すみません、当方の環境でも同様のエラー「validateHostnameAndIP()」が別PC(FreeBSD 8.0-Release + CPython2.6.4)で再現しました
※インストール直後のhostnameを設定しない状態で再現しました

解決方法はhostnameからipアドレスを引けるようにすればokでした
実行環境がwindowsのようなのでlmhostsでホスト名からipを引ける状態にすれば良いと思いますがどうでしょうか?

以上です

Oz さんのコメント...

yasuyuki様、ありがとうございます。今日までコメントの見方を知らず、コメントがあったことに気づきませんでした。お恥ずかしい(^^;

情報ありがとうございました。