IronPython:没有名为json的模块

Mur*_*ock 4 c# ironpython

我已经安装了IronPython

我的python文件看起来像这样:

import sys
print(sys.version)
import json
Run Code Online (Sandbox Code Playgroud)

运行它的代码:

var p = Python.CreateEngine();
var scope = p.CreateScope();
p.ExecuteFile("Test.py", scope);
Run Code Online (Sandbox Code Playgroud)

它输出:

2.7.7(.NET 4.0.30319.42000(32位)上的IronPython 2.7.7(2.7.7.0))

但是随后失败,但出现以下异常:

没有名为json的模块

据我了解,此版本的IronPython中应包含json模块。

为什么会出现此错误?

Mur*_*ock 5

我很快发现Visual Studio中的交互式python窗口没有引发此错误。

print sys.path还为交互窗口和相关文件显示了不同的值。它仅包含bin / Debug文件夹中的路径。

可以轻松添加正确的路径:

var p = Python.CreateEngine();
var scope = p.CreateScope();
var libs = new[] {
    "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\Microsoft\\Python Tools for Visual Studio\\2.2",
    "C:\\Program Files (x86)\\IronPython 2.7\\Lib",
    "C:\\Program Files (x86)\\IronPython 2.7\\DLLs",
    "C:\\Program Files (x86)\\IronPython 2.7",
    "C:\\Program Files (x86)\\IronPython 2.7\\lib\\site-packages"
};

p.SetSearchPaths(libs);
p.ExecuteFile("Test.py", scope);
Run Code Online (Sandbox Code Playgroud)