Привязки Z3 Python: init(Z3_LIBRARY_PATH) должен быть вызван перед использованием Z3-python
Я установил средство проверки теоремы Z3 в Linux и использую его привязки Python (Z3Py). Я попытался протестировать минимальный пример, но сразу же получил следующую ошибку:
z3.z3types.Z3Exception: init(Z3_LIBRARY_PATH) must be invoked before using Z3-python
Как я могу это исправить и начать работать с Z3?
Я не совсем уверен, что означает это сообщение об ошибке. Документация и учебники Z3, похоже, ничего не говорят об этом или о init()
и документы Z3-Python не содержат ни одной функции 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
Я попытался установить переменную среды под названием Z3_LIBRARY_PATH
до запуска Python, на случай, если это поможет, но это не имеет значения.
1 ответ
После импорта библиотек Z3 позвоните
init('/usr/lib64/python2.7/site-packages/z3')
перед вызовом любых других API Z3. Возможно, вам придется скорректировать путь: измените его на путь, где 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