Цель состоит в том, чтобы получить путь к изображению и передать его программе Python в качестве аргумента, а затем получить результаты.
Это делается через веб-приложение, использующее VB (на сервере IIS), и оно отлично работает , за исключением , когда я импортирую модуль Python OpenCV (импортированный в Python как cv2
, более конкретно).
Что еще более запутанно, так это то, что скрипт отлично работает с импортированным модулем cv2
при запуске непосредственно из cmd. Он не работает, только когда код VB запускает скрипт, включая строку import cv2
.
Для ясности я покажу код ниже.
VB-код, выполняющий скрипт Python с путем к изображению в качестве аргумента:
Dim Processtask As New System.Diagnostics.Process()
Processtask.StartInfo.FileName = "cmd.exe"
Processtask.StartInfo.Arguments = "/c python " + path.ToString + " " + ImageURL.ToString
Processtask.StartInfo.UseShellExecute = False
Processtask.StartInfo.RedirectStandardOutput = True
Processtask.StartInfo.RedirectStandardError = True
Processtask.StartInfo.CreateNoWindow = True
Processtask.Start()
Processtask.WaitForExit()
output = Processtask.StandardOutput.ReadToEnd()
Фрагмент кода Python, получающий путь к изображению:
import sys
import cv2
if __name__ == "__main__":
im = str(sys.argv[1])
print(im)
У меня закончились возможные идеи относительно того, что может вызвать эту проблему. Любой совет будет принята с благодарностью.
EDIT
Мне удалось найти полное сообщение об ошибке, которое выглядит следующим образом:
System.Exception: System.IO.StreamReader
System.InvalidOperationException: Process has exited, so the requested
information is not available.
at System.Diagnostics.Process.EnsureState(State state) at
System.Diagnostics.Process.get_ProcessName()
at System.Diagnostics.Process.ToString()