Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在IronPython中引用已编译的python代码?_C#_Python_Ironpython - Fatal编程技术网

C# 如何在IronPython中引用已编译的python代码?

C# 如何在IronPython中引用已编译的python代码?,c#,python,ironpython,C#,Python,Ironpython,我们需要引用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')

我们需要引用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的替代方案是什么? (显然,我们没有.py源代码表单customlib.pyc)

适用于.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")

谢谢

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

要进行反编译,请尝试:


感谢您的建议。unpyc给出了解析错误。在线一个似乎根本不起作用。