gpt4 book ai didi

Python-brisa 可在 Eclipse 中运行,但不能在 shell 中运行

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

下一个 python-brisa 代码可以在 Eclipse 中运行,但如果我从 shell 执行它,就会卡住。我认为问题出在reactor.main()中。因为如果我注释它并创建一个无限循环,该程序将在 Eclipse 和 shell 中运行。知道如何修复它吗?

Python 版本是 2.6.6,我正在使用 Debian 测试(喘息)。

#!/usr/bin/env python

from brisa.core.reactors import install_default_reactor
from brisa.core.threaded_call import run_async_function

reactor = install_default_reactor()

import thread
import sys

from brisa.upnp.control_point.control_point import ControlPoint

class CommandLineCtrlPoint(ControlPoint):

def __init__(self):
ControlPoint.__init__(self)
self.running = False
self.commands = {'option1': 'option1',
'option2': 'option2',
'option3' :'option3',
'help': self._help}

def run(self):
try:
self.running = True
reactor.add_after_stop_func(self.stop)
thread.start_new_thread(self._handle_cmds,())
reactor.main()
# while(True):
# pass
except Exception, e:
print e

def _help(self):
help = 'commands: '
for k in self.commands.keys():
help += k + ', '
print help[:-2]

def _handle_cmds(self):
try:
while self.running:
command = str(raw_input('>>>'))
try:
print command
self.commands[command]()
except KeyError:
print 'invalid command, try help'
command = ''
except Exception, e:
print e

def main():
print "Test Program\n"
cmdline = CommandLineCtrlPoint()
cmdline.run()

if __name__ == "__main__":
main()

最佳答案

我发现了“错误”。解决方案是替换该行:

command = str(raw_input('>>>'))

print '>>> ',
command = sys.stdin.readline().replace('\n','')

我不确定,但也许原因可以在这个解释中:
http://pydev.org/faq.html#why_raw_input_input_does_not_work_correctly

如果有人有其他解释,请评论,我将不胜感激。

关于Python-brisa 可在 Eclipse 中运行,但不能在 shell 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6368793/

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