Линия
arg0,input,key,output = sys.argv
распаковывает список аргументов в sys.argv
в четыре переменные слева. Поскольку в sys.argv
есть только три аргумента, это не выполняется с отправленным вами сообщением об ошибке (очевидно, вам нужно вручную указать путь к сценарию, чтобы он отображался как первый элемент в sys.argv
).
Попробуйте другой способ передачи аргументов командной строки (из этот ответ ):
scriptEngine.Sys.argv = List.Make(new[] { 'input.7z', ... });
В качестве альтернативы, если это не сработает, либо удалите переменную arg0
из назначения в файле Python, либо явно добавьте путь сценария в качестве первого аргумента в C #.