Z3 Python绑定:在使用Z3-python

时间:2017-03-27 19:56:29

标签: python z3 z3py library-path

我在Linux上安装了Z3 theorem prover,并使用了它的Python绑定(Z3Py)。我试着测试一个最小的例子,但我立刻得到了以下错误:

z3.z3types.Z3Exception: init(Z3_LIBRARY_PATH) must be invoked before using Z3-python

如何修复此问题并启动并运行Z3?

我不太确定该错误消息的含义。 Z3文档和教程似乎没有说明这个或关于init()Z3-Python docs没有列出任何名为init()的函数。

更详细地说,这是我尝试过的(轻描淡写):

$ python
Python 2.7.13 (default, Jan 12 2017, 17:59:37)
>>> from z3 import *
>>> Int('x')
Traceback (most recent call last):
  ...
  File "/usr/lib64/python2.7/site-packages/z3/z3core.py", line 22, in lib
    raise Z3Exception("init(Z3_LIBRARY_PATH) must be invoked before using Z3-python")
z3.z3types.Z3Exception: init(Z3_LIBRARY_PATH) must be invoked before using Z3-python

我尝试在运行Python之前设置一个名为Z3_LIBRARY_PATH的环境变量,但这样做会有所帮助,但它没有任何区别。

1 个答案:

答案 0 :(得分:0)

导入Z3库后,调用

init('/usr/lib64/python2.7/site-packages/z3')

在调用任何其他Z3 API之前。您可能需要调整路径:将其更改为找到libz3.so的路径。 (如果不在显而易见的地方,请尝试locate libz3.so找到它。)

使用示例:

$ python
Python 2.7.13 (default, Jan 12 2017, 17:59:37)
>>> from z3 import *
>>> init('/usr/lib64/python2.7/site-packages/z3')
>>> Int('x')
x