IronPython.Runtime.Exceptions.ImportException'未命名模块'

时间:2019-05-11 15:54:42

标签: c# python .net ironpython

我正在尝试使用Ironpython在.NET中使用一个Python代码,但是一个导入的库存在问题,如何解决此异常?

当我尝试执行代码时,返回此异常: IronPython.Runtime.Exceptions.ImportException:'没有名为automata.fa.dfa的模块'

Python代码:

class Automato:

def CalculaAutomato(self):

    from automata.fa.dfa import DFA

    dfa = DFA(states={'q0', 'q1', 'q2'},
        input_symbols={'0', '1'},
        transitions={
            'q0': {'0': 'q0', '1': 'q1'},
            'q1': {'0': 'q0', '1': 'q2'},
            'q2': {'0': 'q2', '1': 'q1'}
        },
        initial_state='q0',
        final_states={'q1'})

    if(dfa.accepts_input('01a10110')):
        print("accept")
        dfa.read_input('01a10110')
        #print(c)
    else:
        print('reject')

Python项目: Python Project Image

代码C#:

        var engine = Python.CreateEngine();
        ICollection<string> Paths = engine.GetSearchPaths();

        Paths.Add(@"C:\Users\dougl\source\repos\Automato\Automato\automata\base");
        Paths.Add(@"C:\Users\dougl\source\repos\Automato\Automato\automata\fa");
        Paths.Add(@"C:\Users\dougl\source\repos\Automato\Automato\automata\pda");
        Paths.Add(@"C:\Users\dougl\source\repos\Automato\Automato\automata\tm");

        engine.SetSearchPaths(Paths);

        dynamic py = engine.ExecuteFile(@"C:\Users\dougl\source\repos\Automato\Automato\Automato.py");
        dynamic automato = py.Automato();
        automato.CalculaAutomato();

我希望python中的结果出现在.NET中以与WinForms一起使用

0 个答案:

没有答案