使用进程从c#调用script.py,但得到错误导入模块,如cv2
我正在写一些python代码,包括OpenCV。现在,我必须使用c添加一些UI和μm,但是当我尝试调用.py时 ı尝试使用该进程调用我的.py文件使用进程从c#调用script.py,但得到错误导入模块,如cv2,c#,python,opencv,C#,Python,Opencv,我正在写一些python代码,包括OpenCV。现在,我必须使用c添加一些UI和μm,但是当我尝试调用.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
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'
文件“C://Users//giris//Desktop//staj\u proje\u son//main.py”,第1行,在
进口cv2
ModuleNotFoundError:没有名为“cv2”的模块
如果您将python添加到path中,您可以在cmd上调用它(假设您在Windows上运行),而不是在python上调用进程,因为您可以从cmd运行python脚本:“python…/myscript.py args”
或者您可以尝试将Microsoft.Hosting.Scripting与IronPython结合使用。:)祝您好运如果您将python添加到path,您可以在cmd上调用它(假设您在Windows上运行),而不是在python上调用进程,因为您可以从cmd运行python脚本:“python…/myscript.py args”
或者您可以尝试将Microsoft.Hosting.Scripting与IronPython结合使用。:)祝你好运此外,如果你想使用IronPython,请检查以下内容:很抱歉,它不起作用。终端显示出来,但程序不起作用,cmd将在1-2秒内关闭。是的,当所有事情完成时,终端将关闭。可能还是有问题。您可以尝试将输出重定向到文件,并检查错误是否仍然存在。在cmd中运行python文件怎么样?只有cmd,没有C#和所有东西?你的程序工作吗?另外,如果你想使用IronPython,请检查:很抱歉,它没有工作,终端显示,但程序不工作,cmd在1-2秒内关闭。是的,终端在每件事情完成时关闭。可能还是有问题。您可以尝试将输出重定向到文件,并检查错误是否仍然存在。在cmd中运行python文件怎么样?只有cmd,没有C#和所有东西?你的程序有效吗?
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)){...}