例如Python的代码是这个样子的。
# coding=<utf-8>
# -*- coding: utf-8 *-
import requests
import urllib
def ClearDirect():#直接删除
print('sadsa')
C#调用
static void Main(string[] args)
{
ScriptRuntime pyRuntime = Python.CreateRuntime(); //创建一下运行环境
var engine = pyRuntime.GetEngine("python");
dynamic obj3 = pyRuntime.UseFile(@"C:\Users\HYCX\Downloads\CSharpCallPython2\PythonApplication2\demo.py"); //调用一个Python文件
Console.WriteLine(obj3.ClearDirect());
}
会报错
谷歌一下各种bug,有的人说这样添加库。在python的代码中这么搞。
sys.path.append('你的django项目路径')
sys.path.append('python的site-packages路径')
那我那么多python文件都得加这个吗?试了一下 也不行。
所以咱们在C#调用的时候 加载 后台看见别人这么搞。
static void Main(string[] args)
{
ScriptRuntime pyRuntime = Python.CreateRuntime(); //创建一下运行环境
var engine = pyRuntime.GetEngine("python");
var pyScope = engine.CreateScope();
var paths = engine.GetSearchPaths();
paths.Add(@"C:\Python27amd64\Lib");
engine.SetSearchPaths(paths);
dynamic obj3 = pyRuntime.UseFile(@"C:\Users\HYCX\Downloads\CSharpCallPython2\PythonApplication2\demo.py"); //调用一个Python文件
Console.WriteLine(obj3.ClearDirect());
}
弄完之后 还是不行。
最后再添加一行。。。
paths.Add(@"C:\Python27amd64\Lib\site-packages");
paths.Add(@"C:\Python27amd64\Lib");
把packges也加载进去就ok了。