porenbeton
Lt. Junior Grade
- Registriert
- Nov. 2014
- Beiträge
- 290
Hallo zusammen,
ich programmiere derzeit an einem Tool das aus Mathematica, Batch und Python Teilen besteht. Auf PC1 (Windows 7) funktioniert der folgende Ablauf problemlos:
In Mathematica starte ich eine Batch mittels
In der Batch wird dann ein Python-Skript aufgerufen:
Das Python-Skript mit Mathematica zu starten funktioniert leider nicht, darum der Umweg über die Batch. Das Python-Skript sieht wie folgt aus:
Es dient dazu, alle im selben Ordner befindlichen Abaqus-Simulationen zu starten. Und wie gesagt, auf PC1 funktioniert das ganze auch ohne Probleme. Auf PC2 (Windows 10) jedoch nicht, dort bekomme ich die folgende Fehlermeldung:
Das seltsame ist: starte ich auf PC2 die Batch manuell, also einfach durch doppelklicken, funktioniert alles wie gewohnt. Der Fehler tritt nur auf, wenn ich besagte Batch über den Mathematica Befehl starte.
Andere Batch-Dateien, die nichts mit Python zu tun haben, lassen sich auf beiden PCs problemlos mit Mathematica starten. Die angeblich fehlende *.dll ist auf beiden PCs vorhanden (d.h. lässt sich über die Windows-Suche finden).
Die einzigen mir bekannten Unterschiede zwischen den PCs sind:
PC1 mit Windows 7 und Python direkt von python.org
PC2 mit Windows 10 und Anaconda
Bei der Installation von Anaconda wurde ich gefragt, ob ich Python zum Windows-PATH hinzufügen möchte. Das habe ich nicht gemacht, weil es so empfohlen wurde. Ist das vielleicht der Grund für den Fehler?
Ich bin dankbar für jeden Hinweis.
ich programmiere derzeit an einem Tool das aus Mathematica, Batch und Python Teilen besteht. Auf PC1 (Windows 7) funktioniert der folgende Ablauf problemlos:
In Mathematica starte ich eine Batch mittels
Code:
Run["starte-python.bat"]
In der Batch wird dann ein Python-Skript aufgerufen:
Code:
path=c:\SIMULIA\Commands
abaqus python python-Skript.py
Das Python-Skript mit Mathematica zu starten funktioniert leider nicht, darum der Umweg über die Batch. Das Python-Skript sieht wie folgt aus:
Code:
# Python script to execute all input decks
# within the directory from which this script is run
#
import sys
import os
import subprocess
#
i=0
run=[]
#
COMMAND = os.environ['ABA_COMMAND']
print
print 'NOTE all input files in this directory will be executed with ',COMMAND
files = os.listdir('.')
print
#
while i < len(files):
nameall = files[i]
ext = nameall[(len(nameall)-3):]
if ext == 'inp':
run.append(nameall[:(len(nameall)-4)])
i=i+1
#
i=0
#
while i < len(run):
name = run[i]
cmd = COMMAND+' -j '+str(name)+' inter'+' cpus=1'
print 'Executing '+cmd
subprocess.Popen(cmd,creationflags = subprocess.CREATE_NEW_CONSOLE)
i=i+1
#
print
print '***'
print '**Completed all analysis runs**'
Es dient dazu, alle im selben Ordner befindlichen Abaqus-Simulationen zu starten. Und wie gesagt, auf PC1 funktioniert das ganze auch ohne Probleme. Auf PC2 (Windows 10) jedoch nicht, dort bekomme ich die folgende Fehlermeldung:
Das seltsame ist: starte ich auf PC2 die Batch manuell, also einfach durch doppelklicken, funktioniert alles wie gewohnt. Der Fehler tritt nur auf, wenn ich besagte Batch über den Mathematica Befehl starte.
Andere Batch-Dateien, die nichts mit Python zu tun haben, lassen sich auf beiden PCs problemlos mit Mathematica starten. Die angeblich fehlende *.dll ist auf beiden PCs vorhanden (d.h. lässt sich über die Windows-Suche finden).
Die einzigen mir bekannten Unterschiede zwischen den PCs sind:
PC1 mit Windows 7 und Python direkt von python.org
PC2 mit Windows 10 und Anaconda
Bei der Installation von Anaconda wurde ich gefragt, ob ich Python zum Windows-PATH hinzufügen möchte. Das habe ich nicht gemacht, weil es so empfohlen wurde. Ist das vielleicht der Grund für den Fehler?
Ich bin dankbar für jeden Hinweis.