Speichern von Matplotlib-Figuren beim Ausführen mehrerer aufeinanderfolgender Python-Dateien über eine .bat-Datei unter Python

Python-Programme
Anonymous
 Speichern von Matplotlib-Figuren beim Ausführen mehrerer aufeinanderfolgender Python-Dateien über eine .bat-Datei unter

Post by Anonymous »

EINRICHTUNG
Ich habe mehrere Skripte, die ich mit einer .bat-Datei ausführe, etwa so:

Code: Select all

cd C:\\path\\to\\my\\project\\directory

echo Running script 1
"C:\\ProgramData\\miniforge3\\envs\\myenv\\python.exe" script1.py
echo.

echo Running script 2
"C:\\ProgramData\\miniforge3\\envs\\myenv\\python.exe" script2.py
echo.

echo Running script 3
"C:\\ProgramData\\miniforge3\\envs\\myenv\\python.exe" script3.py
echo.

echo Complete!
pause
MEIN PROBLEM
Immer wenn ich ein Bild mit matplotlibs .savefig() speichern möchte, endet das aktuelle Python-Skript ohne Fehler und springt sofort zur nächsten Python-Datei.
Wenn dies beispielsweise mein script1.py ist:

Code: Select all

import matplotlib.pyplot as plt

print('Foo')
x = [1,2,3,4]
y = [1,2,3,4]
plt.plot(x,y)
plt.savefig('C:\\path\\to\\my\\project\\directory\\plots\\plot.png')
print('Bar')
Dies ist, was die Konsole ausgeben würde:

Code: Select all

...
C:\\path\\to\\my\\project\\directory> echo Running script 1

Foo

C:\\path\\to\\my\\project\\directory>echo.

C:\\path\\to\\my\\project\\directory>echo Running script 2
...
Dies ist ein großes Problem, da 1. meine Bilder nicht gespeichert werden und 2. der Rest meines Codes nach dem .savefig()-Aufruf nicht ausgeführt wird (keine Ausgabe von „Bar“).
WAS ICH VERSUCHT HABE
Ich habe versucht, Folgendes hinzuzufügen, ohne Erfolg:

Code: Select all

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
Ich habe versucht, relative und absolute Pfade für die Bilder zu verwenden, die ich speichern möchte, ohne Erfolg.
Ich habe versucht, Bilder im Unterverzeichnis C:\\path\\to\\my\\project\\directory statt im Unterverzeichnis C:\\path\\to\\my\\project\\directory\\plots zu speichern, ohne Erfolg.
Wann Ich führe script1.py isoliert über die Befehlszeile aus, es läuft einwandfrei durchgängig und die Bilder werden ordnungsgemäß gespeichert. Dies lässt mich vermuten, dass es etwas mit der .bat-Datei zu tun hat.
Das frustriert mich wirklich, da ich keine Ahnung habe, warum das nicht funktionieren sollte. Ich habe Matplotlib-Figuren tausende Male ohne Probleme gespeichert und diese spezielle Figur ohne Probleme, wenn ich sie isoliert über die Befehlszeile ausführe, aber die .bat-Datei bringt scheinbar alles durcheinander. Gibt es etwas über .bat-Dateien, das mir nicht bekannt ist?
Ich verwende Windows 11, Python 3.11.14 über miniforge3 und Maptlotlib 3.9.2
BEARBEITEN: Wenn ich die .savefig()-Aufrufe entferne, werden alle Skripte durchgängig ohne Probleme über die .bat-Datei ausgeführt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post