使用Z3Py和Python 3.3

时间:2013-03-24 12:51:12

标签: python python-3.x z3 python-2to3

我的情况

我已经为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源代码?
  • 是否已存在Python3的现有Z3Py端口?
  • 如何让 Z3Py与Python3一起运行

感谢。 - 如果有任何不清楚的地方,请留下问题评论。

1 个答案:

答案 0 :(得分:2)

unstable(正在进行中)支持Python 3.此功能将在下一个Z3版本(v4.3.2)中提供。在此期间,您可以使用here找到的说明构建unstable分支。