免责声明 - 我不熟悉 Python。我是一名 C# 开发人员,他编写了一个使用 IronPython 执行 Python 脚本(由其他人编写)的应用程序。到目前为止,这些脚本只需要使用import math
,但我们的一位用户要求该应用程序支持 Numpy。
我已经在我的 PC 上安装了 Numpy(使用 'numpy-1.9.2-win32-superpack-python2.7.exe' 文件),它在 \Lib\site-packages 下创建了一个 numpy 文件夹。我编写了一个两行 Python 脚本来测试 Numpy 是否可以访问:-
import numpy as np
x = np.array([1,2])
我从 C# 中运行脚本:-
var engine = Python.CreateEngine();
engine.SetSearchPaths(new Collection<string>(new[]
{
@"C:\Python27",
@"C:\Python27\DLLs",
@"C:\Python27\Lib",
@"C:\Python27\Lib\site-packages",
@"C:\Python27\Lib\site-packages\numpy",
@"C:\Python27\Lib\site-packages\numpy\core"
}));
var scope = engine.CreateScope();
var scriptSource = engine.CreateScriptSourceFromString(
_myPythonScript,
SourceCodeKind.Statements);
scriptSource.Execute(scope);
尽管设置了所有这些搜索路径,最后一行还是抛出了一个ImportException
:-
无法从 numpy.core 导入多数组
请注意,这篇SO 文章类似,但没有帮助 - 第一个答案提到了一个“mtrand.dll”文件,我似乎没有。
我错过了什么?