【发布时间】:2013-03-24 12:51:11
【问题描述】:
我的情况
我已经安装了 Microsoft Z3 (Z3 [version 4.3.0 - 64 bit]. (C) 2006),它是 Python2 的 pyc 二进制文件。
我编写了一个 Python3 包,它需要访问 z3 功能。
为了能够将pyc 二进制文件与我的Python3 包一起使用,我decompyle z3 二进制文件并应用了2to3。
我的问题
Int('string') 不起作用,因为 Z3Py 无法处理用作 'string' 参数的新 <class 'str'>:
>>> 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
我的问题
- 首先需要
decompyleZ3 的*.pyc文件有点麻烦。那么,有没有可用的 Z3Py 源代码? - 是否已有到 Python3 的 Z3Py 端口?
- 还有其他想法如何让 Z3Py 与 Python3 一起运行?
谢谢。 - 如果有任何不清楚的地方,请留下问题评论。
【问题讨论】:
-
Z3 不是开源的吗? z3.codeplex.com
-
@Kabie 基本上是的,但是在那个存储库中没有任何 Python3 兼容版本的源代码。
标签: python python-3.x z3 python-2to3