Как вызвать Python EXE из консольного приложения C#
Я создал один Python exe, который считывает данные из Config.Json. Теперь я хочу вызвать этот exe-файл из консольного приложения C#, но получаю сообщение об ошибке
<pre>Traceback (most recent call last): File "file.py", line 552, in <module> File "file.py", line 12, in read_JSON FileNotFoundError: [Errno 2] No such file or directory: 'config.json' [456] Failed to execute script filePathExe
Я пытаюсь пробежаться по нижеприведенному коду:
string appArgs = @"D:\appFolder\config.json"; string appPath = @"D:\appFolder\filePathExe.exe"; Process proc = new Process(); ProcessStartInfo si = new ProcessStartInfo(appPath, appArgs); si.WindowStyle = ProcessWindowStyle.Normal; si.Verb = "runas"; // UAC elevation required. si.UseShellExecute = true; // Required for UAC elevation. proc.StartInfo = si; proc.Start(); proc.WaitForExit();
Может кто-нибудь помочь, пожалуйста, как я могу это запустить?
Что я уже пробовал:
Я приложил код, выше которого я использую.
Sandeep Mewara
Вы уверены, что где бы вы ни запускали программу/exe, файл присутствует в ожидаемом месте?
FileNotFoundError: [Errno 2] нет такого файла или каталога: 'config.json'
User-8621695
да, оба файла находятся в одном месте. Кроме того, exe работает нормально, когда я пытаюсь запустить его индивидуально, но не работает из консольного приложения C#.
Garth J Lancaster
Это немного странно ... попробуйте добавить Скрыть скопировать кодСкрыть скопировать код
si.WorkingDirectory = @"D:\appFolder";т.е. Скрыть скопировать кодСкрыть скопировать код
si.WindowStyle = ProcessWindowStyle.Normal;si.WorkingDirectory = @"D:\appFolder"; si.Verb = "runas"; // UAC elevation required.
Было бы также хорошо проверить код python, который заставил exe дважды проверить, что он использует thr полный путь и т. д. к конфигурационному файлу
ZurdoDev
Пожалуйста, опубликуйте в качестве решения.
Garth J Lancaster
готово, ОП все равно отправил сообщение
ZurdoDev
Они сделали это сразу после того, как я предложил тебе сделать это. :)
User-8621695
Спасибо @Garth, это сработало для меня :)