를 실행하는 라즈베리 파이에 파이썬 2.7 Pyro4을 사용하고
중 하나
pyro4-ns &
또는
python -m Pyro4.naming &
내 코드는 아무런 오류없이 예상대로 작동합니다. 그러나 나는
/home/pi/Wakeup-Lamp/lamp_daemon.py &
나는 다음과 같은 오류를 얻을 백그라운드 프로세스로 lamp_daemon.py를 시작할 때 나는 다음과 명령
/etc/init.d/pyro-nsd start
와 파이로 네임 서버 데몬을 시작하면
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()
입니다.
Google이 꽤 있지만 문제를 해결할 수없는 것 같습니다. 누구든지 내가 뭘 잘못하고 있는지에 대한 단서가 있습니까?
네임 서버가 실행 중인지 확인하려면이 명령을 실행 해보십시오. 'pyro4-nsc list' – Gohn67
재미있는'/ etc/init.d/pyro-nsd' 상태는 서버 프로세스 3110이 실행중인 결과를 제공합니다. 그러나'pyro4-nsc list'는 결과를 제공합니다. 이름 서버를 찾지 못했습니다 : 이름 서버를 찾을 수 없습니다. – TheLukeMcCarthy
아직 pyro-nsd를 사용하지 않았습니다. 하지만 그 파일의 내용을 확인하여 이름 서버를 초기화하는 방법을 확인합니다. – Gohn67