Sehr seltsames Verhalten beim Ausführen eines externen Befehls in Mathematica

8

Warum funktioniert

? %Vor%

funktioniert auf der Kommandozeile, aber nicht im Frontend von Mathematica 8 (läuft auf einem Mac)?

Shell:

%Vor%

Frontend:

%Vor%

Aktualisierung:

Ok, der Pfad ist nicht (wirklich) das Problem, wie

%Vor%

ergibt

%Vor%

im Frontend und

%Vor%

in der Shell (das ist eine andere Python-Version, die ich auf meinem System installiert habe). Trotzdem, weder

%Vor%

noch

%Vor%

liefert die korrekte Ausgabe im Frontend. Aber die Verwendung verschiedener Shells im Frontend und in der Terminal-Version könnte ein Hinweis darauf sein, warum Mathematica sich schlecht benimmt.

    
phantomas1234 29.05.2011, 22:55
quelle

2 Antworten

10

python --version schreibt seine Antwort auf den Standardfehler-Stream, aber Import erfasst nur den Standard-Ausgabestream. Um die Antwort anzuzeigen, leiten Sie stderr an stdout weiter. In den meisten Shells (auch Windows) kann dies mit der magischen Beschwörung 2>&1 :

erreicht werden %Vor%

Von der Befehlszeile abweichendes Frontend?

Der Import -Befehl erscheint , um anders zu funktionieren, wenn er in der Befehlszeilenversion von Mathematica ausgeführt wird. Erscheinungen können jedoch täuschen. Hier ist eine Abschrift:

%Vor%

Beachten Sie, dass Out[1] leer ist. Die Versionszeichenfolge wird im Transkript angezeigt, dies liegt jedoch daran, dass der Standardfehlerstream im Terminalfenster mit der Standardausgabe von Mathematica angezeigt wird. Dies wird noch deutlicher, wenn wir das Ergebnis einer Variablen zuweisen und die Ausgabe mit ; :

unterdrücken %Vor%

Es sollte keine Ausgabe geben, aber wir sehen immer noch den Standardfehler-Stream, der im Terminal-Fenster angezeigt wird. v ist leer und zeigt an, dass der Wert des Ausdrucks Import ebenfalls leer war.

    
WReach 30.05.2011, 01:29
quelle
3

WReach hat die antworte auf dein Problem. Mein Punkt bleibt jedoch, dass die Instanz der von Mathematica aufgerufenen Shell die Pfadvariable nicht korrekt gesetzt hat. Hier einige Informationen von mir:

Die Shell ist korrekt, aber der Pfad ist der Standardpfad. Also leite meinen modifizierten Pfad und rufe dann python --version :

auf

    
abcd 29.05.2011 23:23
quelle

Tags und Links