gpt4 book ai didi

python - 使用 Pyro-nsd 时找不到 Pyro 名称服务器

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:24 25 4
gpt4 key购买 nike

我在运行 Wheezy 的树莓派上使用 Pyro4 和 Python 2.7

当我启动 Pyro 名称服务器时

pyro4-ns &

python -m Pyro4.naming &

我的代码按预期工作,没有任何错误。但是,当我使用以下命令启动 Pyro 名称服务器守护程序时

/etc/init.d/pyro-nsd start

当我将 lamp_daemon.py 作为后台进程启动时

/home/pi/Wakeup-Lamp/lamp_daemon.py &

我得到以下错误

File "/home/pi/Wakeup-Lamp/lamp_daemon.py", line 27, in
nameServer = Pyro4.locateNS()
File "/usr/local/lib/python2.7/dist-packages/Pyro4/naming.py", line 358, in locateNS
raise e
Pyro4.errors.NamingError: Failed to locate the nameserver

lamp_daemon.py代码为

#!/usr/bin/python

from current_lamp_state import CurrentLampState
from lamp_state import LampState
from pwm import Pwm
import Pyro4
import Pyro.core
import Pyro.naming

class LampSwitch(Pyro.core.ObjBase):
__currentLampState = CurrentLampState()
__pwm = Pwm()

def get_lamp_state(self):
return self.__currentLampState.get()

def set_lamp_state(self, new_lamp_state):
self.__currentLampState.set(new_lamp_state)
self.__pwm.update()

lampSwitch = LampSwitch()
daemon = Pyro4.Daemon()
nameServer = Pyro4.locateNS()
uri = daemon.register(lampSwitch)
nameServer.register("lamp.daemon", uri)
daemon.requestLoop()

我用谷歌搜索了很多,但似乎无法解决问题。有没有人知道我做错了什么?

最佳答案

如果服务器上的 pyro 版本与客户端不同,则无法找到名称服务器,这是检查 Pyro 版本的方法:

python -c "import Pyro4.constants as c; print(c.PROTOCOL_VERSION)"

如果不一样,请卸载pyro模块,重新安装。

当我按照上述步骤操作时,我遇到了类似的问题,该问题已得到解决。

关于python - 使用 Pyro-nsd 时找不到 Pyro 名称服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26496474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com