c# – IronPython,导入模块
我按照这里的最佳答案示例到T,用Pyc.py进行编译.
Build Python scripts and call methods from C# 我在pyScope = pyEngine.ImportModule(“MyClass”)中得到一个例外; no module named MyClass 我相信这是一个错误,因为有时使用Pyc.py进行重新编译会生成一个dll ImportModule识别,但有时它不会. 结论:如下面通过digEmAll所述,以这种方式使用Pyc.py编译模块会产生随机结果.而是手动调用clr.CompileModules. 解决方法
好,
我知道了. 模块名称是原始.py模块的(区分大小写)名称,而不是已编译的dll. 我的意思是,如果您的原始模块名称是myClass.py,那么您在MyClass.dll中编译它,您必须ImportModule(“myClass”)而不是ImportModule(“MyClass”) 编辑: 前面的代码引用了以下编译方法: import clr clr.CompileModules("CompiledScript.dll","script.py") 相反,使用pyc.py,生成的dll包含一个名为__main__的模块,而不是.py文件名. 那很奇怪…… IIRC,在python中,一个模块调用自己__main__如果它是独立运行的(即没有被另一个调用),但我仍然没有掌握连接…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |