Ошибка запуска Pyro Daemon с использованием сервера имен: «не удалось найти сервер имен»

#python #pyro

#python #pyro

Вопрос:

Я пытаюсь запустить простой пример Pyro (взятый с этой страницы), это код:

 import Pyro.core
import Pyro.naming

class JokeGen(Pyro.core.ObjBase):
  def joke(self, name):
    return "Sorry " name ", I don't know any jokes."

daemon=Pyro.core.Daemon()
ns=Pyro.naming.NameServerLocator().getNS()
daemon.useNameServer(ns)
uri=daemon.connect(JokeGen(),"jokegen")
daemon.requestLoop()
  

Когда я запускаю этот скрипт с Python 2.6.5 и Python 2.6.6 (пробовал как на Ubuntu 10.04, так и на Debian Squeeze), я всегда получаю эту ошибку:

 Traceback (most recent call last):
  File "/home/ingo/tools/python/pyroserver.py", line 9, in <module>
    ns=Pyro.naming.NameServerLocator().getNS()
  File "/usr/lib/pymodules/python2.6/Pyro/naming.py", line 176, in getNS
    reply = self.sendSysCommand(NS_SYSCMD_LOCATION,host,port,trace,1,bcaddr)
  File "/usr/lib/pymodules/python2.6/Pyro/naming.py", line 76, in sendSysCommand
    raise Pyro.errors.NamingError("could not find NameServer")
Pyro.errors.NamingError: could not find NameServer
  

Что не так со скриптом? Как я могу создать этот сервер имен?

Ответ №1:

Сначала запустите pyro-ns на другом терминале. Это посредник объектов Pyro.