Pyro ns = True无效

时间:2015-03-28 04:01:17

标签: python rpc pyro

我对RPC和Pyro完全陌生,并试图理解它的概念。我正在做它的网站示例,当我做ns = True时我的代码不工作尽管它在ns = False时正常工作。我正在收到此错误:

  

Pyro4.errors.NamingError:找不到名称服务器

当我使用ipdb调试时,我看到了:

  

CommunicationError:无法连接:[Errno 111]拒绝连接

from __future__ import print_function
import Pyro4
import person

class Warehouse(object):
    def __init__(self):
        self.contents = ["chair", "bike", "flashlight", "laptop", "couch"]

    def list_contents(self):
        return self.contents

    def take(self, name, item):
        self.contents.remove(item)
        print("{0} took the {1}.".format(name, item))

    def store(self, name, item):
        self.contents.append(item)
        print("{0} stored the {1}.".format(name, item))

def main():
    warehouse = Warehouse()
    Pyro4.Daemon.serveSimple(
            {
                warehouse: "example.warehouse"
            },
            ns = True)

if __name__=="__main__":
    main()

没有启动守护进程的解决方案是什么?

2 个答案:

答案 0 :(得分:0)

ns=True中的serveSimple参数将在某个地方的正在运行的名称服务器中注册对象。你必须自己开始。如果没有名称服务器已经运行,它将无法工作。

答案 1 :(得分:0)

您需要仔细阅读本教程中的说明。 您需要在warehouse.py

之外运行 python -m Pyro4.naming