Description
Environment
- Pythonnet version: 2.3.0
- Python version: 2.7.13
- Operating System: Windows 10
Details
We are trying to expose a python method in .Net, in a class that inherits from System.Object.
We are following the example code in clr.py in the pythonnet repository except that we are inheriting from System.Object and that we are using a namespace. When we run
class X(System.Object):
__namespace__ = "PyTest"
@clrmethod(int, [str])
def test(self, x):
return len(x)
we get the error message
Traceback (most recent call last):
File "test.py", line 80, in
class X(System.Object):
TypeError: Error when calling the metaclass bases
Unable to find an entry point named 'PyIter_Check' in DLL 'python27'.
The error seems to be due to the fact that PyIter_Check is a #define statement and not a function in python. Therefore the import of the function fails in runtime.cs. The error does not occur in python 3 because PyIter_Check is not imported when python 3 is used.