我想在我的.NET C#Library中集成IronPython,但我总是遇到以下异常
其他信息:没有名为' modulename'
的模块
在我的C#库项目中,我安装了以下IronPython NuGet
安装包IronPython
安装包IronPython.StdLib
Python简单代码(getLogScaledPNG.py):
import numpy as np
import matplotlib.pyplot as plt
def getLogScaledPNG(filename):
data = plt.imread(filename);
data[data == 0.] = np.nan;
logdata = np.log(data);
plt.imsave("logimage.png", logdata, cmap="gray");
print 'Scaled Image Saved'
C#代码:
using IronPython.Hosting;
var ipy = Python.CreateRuntime();
dynamic getLogScaledPNG = ipy.UseFile(@".\PythonScripts\getLogScaledPNG.py");
getLogScaledPNG.getLogScaledPNG("toto.png");
当我执行这个C#代码时,我得到了以下例外:
附加信息:没有名为numpy的模块
我不明白我在哪里以及如何添加此模块? 我只是在我的.NET项目中引用了IronPython DLL,而且我还没有任何可以添加此模块的文件夹
答案 0 :(得分:1)
除了IronPython DLL,您还需要Python标准库脚本。
Download IronPython.StdLib.2.7.8.zip,将所有内容提取到文件夹
并将其添加到您的代码中:
ScriptEngine engine = Python.CreateEngine();
var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\yourLibFolder");
engine.SetSearchPaths(searchPaths);