In meinem Python/Django-Code rufe ich gdalbuildvrt
Prozess. Dieser Prozess sollte eine .VRT-Datei erstellen, tut dies jedoch nicht. Um es zu überprüfen, schreibe ich die Subprozessausgabe in eine Debug-Datei. Dies ist, wie ich es tun:Wie debuggen Subprozess Aufruf in Python/Django
process = subprocess.Popen(["gdalbuildvrt", mosaic, folder], stdout=subprocess.PIPE)
stdout = process.communicate()[0]
with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "debug.txt"), 'w') as file:
file.write('{}'.format(stdout) + " -> " + mosaic)
Als Folge ich dies in debug.txt Datei sehen:
b'0...10...20...30...40...50...60...70...80...90...100 - done.\n' -> /var/www/vwrapper/accent/accent/layers/raw/mosaic.vrt
So, wie Sie den ersten Teil der Debug-Anweisung sagt sehen können, dass es‘ ok:
0...10...20...30...40...50...60...70...80...90...100 - done.
Und der zweite Teil sagt, dass /var/www/vwrapper/accent/accent/layers/raw/mosaic.vrt
erstellt werden soll. Wenn ich jedoch in den Zielordner gehe und ihn aktualisiere, sehe ich dort keine Datei mosaic.vrt. Also, was kann daran falsch sein und wie kann ich es beheben? Ich sollte hinzufügen, dass es auf Windows-Rechner 100% ok ist, aber auf CentOS tut es nicht.
Log 'stderr' und der' .returncode' ... das ist, wo keine Probleme geben wird. – TemporalWolf
@TemporalWolf. Würdest du so ein bisschen näher darauf eingehen? Sie können eine vollständige Antwort geben, wenn Sie es wünschen. – Jacobian