Есть ли у кого-нибудь самый простой способ запустить скрипт Python из проекта Ada?
Скрипт Python в этом случае имеет печать только в oop, с sleep, поэтому на каждой итерации должны выводиться аргументы.
Используемый мной сценарий Python:
import sys
import time
for index in range(10):
print(sys.argv)
time.sleep(1)
При подходе, который я пытаюсь запустить, он запускается как пакетный сценарий, поэтому с использованием
with Text_IO;
with Interfaces.C; use Interfaces.C;
procedure systest2 is
function Sys (Arg : Char_Array) return Integer;
pragma Import(C, Sys, "system");
Ret_Val : Integer;
begin
Ret_Val := Sys(To_C("python testpy.py arg1 arg2"));
end systest2;
Проблема в том, что выполнение блокирует скрипт, а это означает, что распечатки Python печатаются только в конце выполнения.
Я знаю, что Существует решение (запустить Python из Ады) на основе GNATCOLL, но я не смог найти ни одного примера для его запуска.
Обновление
Просто для прояснить. Поэтому я постараюсь немного упростить вопрос. Я хочу сделать эквивалент этого в C:
#include <stdio.h>
#include <stdlib.h>
int main(){
system("python testpy.py ddddd");
return 0;
}
В этом случае он не блокирует распечатки testpy.py.
Но я делаю это
with Interfaces.C; use Interfaces.C;
procedure systest2 is
function Sys (Arg : Char_Array) return Integer;
pragma Import(C, Sys, "system");
Ret_Val : Integer;
begin
Ret_Val := Sys(To_C("python testpy.py arg1 arg2"));
end systest2;
, который блокирует скрипт testpy.py до конца. Этого не должно быть.
Итак, пожалуйста, как мне это исправить?