2016-06-17 57 views
1

Ich kann keine der z3py Beispiele funktionieren. Ich konnte es erfolgreich mit den Anweisungen aus der README auf GitHub installieren. Ich habe meinen Python-Pfad erfolgreich aktualisiert, um auf das entsprechende Verzeichnis zu zeigen. Außerdem konnte ich z3 erfolgreich importieren, aber jedes Mal, wenn ich eine Variable deklariere, erhalte ich einen Fehler. Der Compiler erkennt Int, Ints, Real und RealVal nicht.z3py Beispiele funktionieren nicht auf macOS

Ich habe ein Beispiel zur Veranschaulichung eingefügt.

Code:

from z3 import * 
x = Int('x') 
y = Int('y') 
solve(x > 2, y < 10, x + 2*y == 7) 

Error: Traceback (most recent call last): File "test.py", line 3, in x = Int('x') NameError: name 'Int' is not defined

Ich würde wirklich zu schätzen jede Hilfe. Ich danke dir sehr.

+0

Was zeigt 'dir()' nach 'von z3 import *'? Hast du stattdessen versucht 'import z3; x = z3.Int ('x') '? – nekomatic

+0

@nekomantic: Danke für Ihre Antwort. Hier sind die Antworten: 'von z3 import * dir() >>> [ '__ builtins__', '__doc__', '__name__', '__package__'] >>> x = Int ('x') Traceback (jüngste Aufforderung zuletzt): File "" Linie 1 in Nameerror: name 'Int' ist defined' nicht '>>> import z3 >>> x = Int ('x') Traceback (jüngste Aufforderung zuletzt): File „“ Linie 1 in Nameerror: name ‚Int‘ defined' nicht –

+0

Nachdem Sie 'ein Modul import' es im Ergebnis erscheinen soll 'dir()', also würde ich prüfen, ob du z3 richtig installiert hast. – nekomatic

Antwort

0

Es ist etwas falsch mit Ihrer lokalen Installation, entweder von Python oder Z3.

Ich habe gerade Z3 auf meinem Mac kompiliert und lief das Beispiel test.py, das Sie ohne Probleme zur Verfügung gestellt. Ich benutze OS X 10.9.5 mit Python 2.7.11 und die aktuelle Master-Version von Z3 (commit 41edf5f). Die genauen Anweisungen, die ich verwendet wurden, waren:

git clone https://github.com/Z3Prover/z3.git 
cd z3 
./configure 
cd build 
make -j4 
emacs test.py 
# Write in the example you gave. 
python ./test.py 

Der Ausgang ich erhielt, war [y = 0, x = 7], die die gleiche Leistung ist, dass ich von Ihrem Skript auf meinem Linux-Box bekam. Das Problem ist also spezifisch für Ihre OS X-Maschine oder Ihren Build-Vorgang.