C# 如何向Iron Python添加模块?

C# 如何向Iron Python添加模块?,c#,python,ironpython,python-import,import-module,C#,Python,Ironpython,Python Import,Import Module,我一直在尝试使用C#Visual Studio执行以下Python代码(graphcreater.py)。我通过NuGet包管理器添加了IronPyton 2.7.7和IronPython.StdLib 2.7.7 一旦我运行这个程序,它就会出现一个异常,说 没有名为mpl_toolkits.mplot3d的模块 我需要弄清楚如何在Python代码(graphcreater.py)中正确导入mpl_工具箱模块 注意:graphcreater.py仅在使用Python执行时运行 Python代码(

我一直在尝试使用C#Visual Studio执行以下Python代码(graphcreater.py)。我通过NuGet包管理器添加了IronPyton 2.7.7和IronPython.StdLib 2.7.7

一旦我运行这个程序,它就会出现一个异常,说

没有名为mpl_toolkits.mplot3d的模块

我需要弄清楚如何在Python代码(graphcreater.py)中正确导入mpl_工具箱模块

注意:graphcreater.py仅在使用Python执行时运行

Python代码(graphcreater.py):

C#代码:


我想我在阅读后有了一个解决方案:

我们可以为要使用的库设置搜索路径。例如,我修改了搜索路径,如下所示:

ICollection<string> searchPaths = engine.GetSearchPaths();
searchPaths.Add("J:\\Python\\test2\\venv\\Lib");
searchPaths.Add("J:\\Python\\test2\\venv\\Lib\\site-packages");
engine.SetSearchPaths(searchPaths);
所以,这并不是完全成功,但它表明,如果安装了软件包,现在我可以导入它们


问题是并非所有的软件包都与IronPython兼容,正如他们的网站中提到的那样。因此,我建议的最佳解决方案是在文件夹中安装IronPython(ipy.exe),然后安装所需的支持包,然后可以将C#中的搜索路径更新为您安装的ipy的
站点包

好悲伤,您刚刚救了我最后一根头发不被拔出来-谢谢!我儿子为我妻子写了一个简单的随机绘图线生成器python脚本,所以我觉得把它打包成一个应用程序会很有趣。。。乐趣不是一个很好的词,但至少现在我可以导入一个模块了!
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;

namespace graphCreator
{
  class Program
  {
    static void Main(string[] args)
    {
        ScriptEngine engine = Python.CreateEngine();
        engine.ExecuteFile(@"graphcreater.py");
    }
  }
}
ICollection<string> searchPaths = engine.GetSearchPaths();
searchPaths.Add("J:\\Python\\test2\\venv\\Lib");
searchPaths.Add("J:\\Python\\test2\\venv\\Lib\\site-packages");
engine.SetSearchPaths(searchPaths);
>>> import networkx
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "J:\Python\test2\venv\Lib\site-packages\networkx\__init__.py", line 128, in <module>
  File "J:\Python\test2\venv\Lib\site-packages\networkx\drawing\__init__.py", line 6, in <module>
  File "J:\Python\test2\venv\Lib\site-packages\networkx\drawing\nx_pydot.py", line 27, in <module>
  File "J:\Python\test2\venv\Lib\site-packages\pkg_resources\__init__.py", line 77, in <module>
  File "J:\Python\test2\venv\Lib\site-packages\pkg_resources\_vendor\packaging\requirements.py", line 9, in <module>
  File "J:\Python\test2\venv\Lib\site-packages\pkg_resources\extern\__init__.py", line 43, in load_module
  File "J:\Python\test2\venv\Lib\site-packages\pkg_resources\_vendor\pyparsing.py", line 4715, in <module>
  File "J:\Python\test2\venv\Lib\site-packages\pkg_resources\_vendor\pyparsing.py", line 1261, in setParseAction
  File "J:\Python\test2\venv\Lib\site-packages\pkg_resources\_vendor\pyparsing.py", line 1043, in _trim_arity
IndexError: index out of range: -1