**使用C#调用python代码,python代码需要调用库
-
- 用的第一种(不可行)
using (Py.GIL())
{
try
{
dynamic myModule = Py.Import("PythonApplication1");
string result = myModule.ShowImg();
}
catch (PythonException e)
{
Console.WriteLine(e.Message);
}
}
代码需要对视频处理,虽然能够运行成功但是有时会闪退并且对视频处理速度有较大影响,不稳定
- 第二种使用IronPython来进行处理
代码如下
- C#代码
static void Main(string[] args)
{
var engine = Python.CreateEngine();
// 加载脚本文件
dynamic py = engine.ExecuteFile(@"Python/PythonApplication1.py");
Console.WriteLine("Use Requests:");
string resp = py.ShowImg();
Console.WriteLine(resp);
Console.ReadKey();
}
- python代码
import sys
sys.path.append("C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages")
sys.path.append("C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib")
import mmap
import numpy
def ShowImg():
print(sys.path)
运行后会报错

如果不加 import numpy
import sys
sys.path.append("C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages")
sys.path.append("C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib")
import mmap
def ShowImg():
print(sys.path)
可以正常运行

使用IronPython如何能正常使用库而不报错