【问题标题】:how to reference compiled python code in IronPython?如何在 IronPython 中引用已编译的 Python 代码?
【发布时间】:2010-10-28 04:28:57
【问题描述】:

我们需要从 C# 中引用 .py 代码。使用 IronPython 2.6 解决了这个问题

问题源于 .py 代码使用“import customlib”,这是一个编译成 customlib.pyc 的库

IronPython 给出错误:IronPython.Runtime.Exceptions.ImportException:没有名为 customlib 的模块

尝试的解决方案:

在python代码中添加这样的引用:

import sys
sys.path.append('c:\path to customlib')

这似乎适用于其他 .py 文件,但不适用于 .pyc

问题: 1) 你如何在 IronPython 中引用 .pyc? 2)如果不可能,在 C#.Net 中使用 .py 和 .pyc 的替代方法是什么? (显然我们没有customlib.pyc形式的.py源代码)

适用于 .py 但不适用于 .py 导入 .pyc 的 C# 代码:

ScriptEngine engine = Python.CreateEngine();
ScriptScope pyScope = null;
ScriptSource ss = null;
...
pyScope = engine.CreateScope();
ss = engine.CreateScriptSourceFromFile(@"C:\test.py");
ss.Execute(pyScope);
...
int result = (int)engine.Operations.InvokeMember(pyScope, "funcName")

谢谢!

【问题讨论】:

    标签: c# python ironpython


    【解决方案1】:

    *.pyc 文件是特定于 CPython 的。您必须对它们进行反编译或调用 CPython。

    反编译试试:

    【讨论】:

    • 感谢建议。unpyc 给出了解析错误。在线的似乎根本不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2010-12-26
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多