例如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了。