我正在写一些Python代码,包括open-cv。现在,我不得不使用c#添加一些UI和ım,但是当我尝试调用call.py
时ı试图使用该过程调用我的.py文件
string python = @"C:\Windows.old\Users\giris\AppData\Local\Programs\Python\Python37-32\python.exe";
string myPythonApp = "C://Users//giris//Desktop//staj_proje_son//main.py";
string ogrencioptik = textBox2.Text;
string cevapkagidi = textBox1.Text;
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(python);
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcessStartInfo.Arguments = myPythonApp + " " + ogrencioptik + " " + cevapkagidi;
Process myProcess = new Process();
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
myProcess.WaitForExit();
myProcess.Close();
Python文件必须运行良好,并且必须将结果写入.txt文件。
这是错误:
File "C://Users//giris//Desktop//staj_proje_son//main.py", line 1, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
答案 0 :(得分:0)
如果将python添加到路径,则可以像在cmd上运行python脚本那样,而不是在python上调用进程,而在cmd上调用它(就像在cmd上运行一样):“ python ... / myscript.py args”
string cmdArguments = "/c \"python " + myApp+ " " + sScriptARGS + "\"";
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "cmd.exe";
start.Arguments = cmdArguments;
start.RedirectStandardOutput = true;// Any output, generated by application will be redirected back
start.RedirectStandardError = true; // Any error in standard output will be redirected back (for example exceptions)
using(Process process = Process.Start(start)){...}
或者您可以尝试通过IronPython使用Microsoft.Hosting.Scripting。 :)祝你好运