Não há nada na distribuição python de fazer esse tipo de abertura, "baterias incluídas", não obstante.
Programas como os editores podem lidar com esse tipo de coisa, porque é bem claro o que fazer quando você abre outro arquivo: basta abrir uma janela / guia no novo arquivo, manipulado pelo mesmo executável.
Implementar algo assim não é tão difícil, mas você precisa pensar sobre o que acontece quando o primeiro comando ainda não terminou e o segundo está agendado:
- anular o primeiro comando
- enfileire o segundo comando
- executam as coisas em paralelo (o que requer tempo de inicialização extra, a menos que você tenha vários encadeamentos aguardando o comando)
Eu notifiquei os pythons para carregar e executar módulos com base em arquivos em um diretório que foram verificados, solicitação http (em um sistema baseado em torção) e com zeromq. O que é apropriado depende IMHO o que mais é necessário para o sistema, eu sempre vou com o que funciona e tem menos sobrecarga. Seu python-current
teria que fazer a interface apropriada.
Frequentemente isso foi combinado com o recarregamento de determinados módulos (para obter o processamento de novos comandos). Para isso você pode usar o reload()
embutido:
import mycommand
# test for a command that requires reloading
reload(mycommand)
Como um aparte: especialmente ao usar o código da interface do usuário, descobri que esse recarregamento é útil. O carregamento do executável em Python é comparável ao Perl (0,002s no meu sistema de vários anos,
time python -v
). Carregar os módulos base leva cerca de dez vezes mais tempo ( time python -c "exit();", 0.025s). But when using UI based programs the whole startup easily grows to several seconds and more. And in that case implementing dynamic command reading and having a
python-current 'faz sentido.