C# 在Python3中将Int32与PythonNet一起使用

C# 在Python3中将Int32与PythonNet一起使用,c#,python,integer,python-3.4,python.net,C#,Python,Integer,Python 3.4,Python.net,在Python2中,一切都很好,但在Python3中,它不起作用。我使用Gohlke Python包中的whl安装了这个包。问题是,在Python3中,所有整数都是长的。当传递给C#函数时,它们作为64位整数传递,这会导致将Int32作为参数的函数失败,错误为“没有方法匹配给定参数”。我尝试使用convert.ToInt32()将其转换为Int32,但这将返回一个Python int,它又是64位的 所以,问题是,如何在Python3中正确使用Int32 哦,当我试着这样做时,它出现了一个溢出错

在Python2中,一切都很好,但在Python3中,它不起作用。我使用Gohlke Python包中的whl安装了这个包。问题是,在Python3中,所有整数都是长的。当传递给C#函数时,它们作为64位整数传递,这会导致将Int32作为参数的函数失败,错误为“没有方法匹配给定参数”。我尝试使用convert.ToInt32()将其转换为Int32,但这将返回一个Python int,它又是64位的

所以,问题是,如何在Python3中正确使用Int32

哦,当我试着这样做时,它出现了一个溢出错误:

>>> print(Int32(2))
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    print(Int32(2))
OverflowError: value too large to convert
打印(Int32(2)) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 打印(Int32(2)) 溢出错误:值太大,无法转换
需要从系统加载Unint32或Int32:

import clr
clr.AddReference("System")
from System import UInt32, Int32

print(UInt32(2))
print(Int32(2))

Unint32或Int32需要从系统加载:

import clr
clr.AddReference("System")
from System import UInt32, Int32

print(UInt32(2))
print(Int32(2))