Вопрос

В настоящее время я разрабатываю простое приложение на python, которое подключается к серверу.На данный момент он однопоточный (поскольку многопоточность в настоящее время не требуется).

Однако я хотел бы - для отладки, обслуживания и тому подобного - также иметь возможность иметь REPL через stdin.

Как мне это сделать, если это возможно?Нужно ли мне будет что-то иметь в виду?Должен ли я создать для этого отдельный поток?

Это было полезно?

Решение

Может быть это вопрос мог бы помочь.Вы можете немного изменить его, чтобы создать индивидуальный REPL.

Другие советы

Вам либо нужно перейти на неблокирующий режим, либо использовать поток.

Я бы лично использовал Twisted для параллелизма, который также предлагает REPL-протокол, который легко интегрировать.

Есть также rfoo.Из README:

rconsole - в комплекте с пакетом rfoo входит удаленная консоль Python с автоматическим завершением, которая может использоваться для проверки и изменения пространства имен запущенного скрипта.

Чтобы активировать в скрипте, выполните:

from rfoo.utils import rconsole
rconsole.spawn_server()

Чтобы прикрепить из скорлупы, сделайте:

$ rconsole

ПРИМЕЧАНИЕ ПО БЕЗОПАСНОСТИ:
Прослушиватель rconsole, запущенный с помощью spawn_server(), будет принимать любое локальное соединение и, следовательно, может быть небезопасен для использования в общем хостинге или аналогичных средах!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top