Я создал скрипт с использованием Python2.7 и скомпилировал его с помощью pyinstaller в исполняемый файл с тем же именем, в этом случае «GeneralStats.py» превращается в «GeneralStats.exe» с использованием аргументов --onefile и -w.
При вызове с C # я использую:
var pythonDirectory = (Directory.GetCurrentDirectory());
var filePathExe1 = Path.Combine(pythonDirectory + "\\Python\\GeneralStats.exe");
Process.Start(filePathExe1);
При вызове вне C #, поэтому в моих локальных файлах я могу запустить .exe, и в результате получается текстовый файл с большим количеством значений (работает правильно).
Однако при запуске с C # в этом формате я получаю сообщение об ошибке «GeneralStats вернул -1!»
С которыми у меня были проблемы раньше, но это была простая ошибка Python, что когда я возвращался к своему коду и запускал его, я получал ошибку, которую пропустил.
На этот раз мой код Python не возвращает ошибок и работает за пределами C #.
Есть идеи, почему это может быть? Я могу предоставить любой код или каталоги файлов, просто спросите, не считаете ли вы, что это поможет отладке.
EDIT:
Решено удалением:
var filePathExe1 = Path.Combine(pythonDirectory + "\\Python\\GeneralStats.exe");
Process.Start(filePathExe1);
И заменить на:
ProcessStartInfo _processStartInfo = new ProcessStartInfo();
_processStartInfo.WorkingDirectory = Path.Combine(pythonDirectory + "\\Python");
_processStartInfo.FileName = @"GeneralStats.exe";
_processStartInfo.CreateNoWindow = true;
Process myProcess = Process.Start(_processStartInfo);