我已经为Python2安装了Microsoft Z3(Z3 [version 4.3.0 - 64 bit]. (C) 2006
)和它的pyc
二进制文件。
我编写了一个需要访问z3
功能的Python3包。
为了能够在我的Python3包中使用pyc
二进制文件,我decompyle
z3
二进制文件并应用2to3
。
Int('string')
不起作用,因为Z3Py无法处理用作<class 'str'>
参数的新'string'
:
>>> import z3; z3.Int('abc')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File ".\bin\z3.py", line 2931, in Int
return ArithRef(Z3_mk_const(ctx.ref(), to_symbol(name, ctx), IntSort(ctx).ast), ctx)
File ".\bin\z3.py", line 72, in to_symbol
return Z3_mk_string_symbol(_get_ctx(ctx).ref(), s)
File ".\bin\z3core.py", line 1430, in Z3_mk_string_symbol
r = lib().Z3_mk_string_symbol(a0, a1)
ctypes.ArgumentError: argument 2: <class 'TypeError'>: wrong type
decompyle
Z3的*.pyc
文件有点笨拙。那么,有没有可用的Z3Py源代码?感谢。 - 如果有任何不清楚的地方,请留下问题评论。
答案 0 :(得分:2)
unstable
(正在进行中)支持Python 3.此功能将在下一个Z3版本(v4.3.2)中提供。在此期间,您可以使用here找到的说明构建unstable
分支。