ссылаюсь к этому так question, мне нужно, чтобы запустить консольное приложение Cmd, который будет использовать витую структуру Python для сетевых запросов, на следующем примере:Использование модуля Cmd внутри Python витой нити
from cmd import Cmd
from twisted.internet import reactor
class CommandProcessor(Cmd):
def do_quit(self, line):
print 'bye bye !'
return True
def do_hello(self, line):
print 'world'
if __name__ == "__main__":
reactor.callInThread(CommandProcessor().cmdloop)
reactor.run()
Все мелко но при выполнении команды quit консоль висит до тех пор, пока я не нажму Ctrl + c, и то же самое, если я нажму Ctrl + c перед выполнением , закройте, консоль также зависает до тех пор, пока я не исполнил команду , оставив команду.
Кажется, что реактор все еще работает, когда я выхожу из командного процессора . Cmdloop, если это проблема, мне нужен способ остановить реактор всякий раз, когда заканчивается нить.
Даже с * reactor.stop() * проблема по-прежнему, набрав quit, вы не получите консоль, она будет зависать, пока я не нажму Ctrl + c. –
@FouratZOUARI, Это сработало для меня. (по крайней мере, в окне 7, python 2.7.6 64 бит) – falsetru
(скрученный 13.1.0) – falsetru