原先的標準寫法如下
import clr
clr.AddReference('MyDLL')
from MyDLL import MyClass
my_obj = MyClass()
但是因為 pythonnet 會去覆寫 __import__
函式,而 cython 又有自己的一套方式來處理 __import__
函式,因而導致程式在 cythonize 之後會出現 ModuleNotFoundError 的錯誤
如果要建立 MyClass 的 instance 的話還是可以使用 .net 的 CreateInstance 方法
import clr
asm = clr.AddReference("MyDLL")
my_obj = asm.CreateInstance('MyDLL.MyClass')
沒有留言:
張貼留言