Starten Sie Blender im Hintergrund über die Befehlszeile und führen Sie die Blender-Verarbeitung mit Python aus. Ich möchte einige Argumente haben, wenn ich Python ausführe.
Verwenden Sie die Argparse-Bibliothek von Python, um die Argumente zu organisieren.
Nehmen Sie ein Argument und führen Sie es wie run.bat aus.
run.bat
blender.exe --background --python generate.py --gender f --location i
Es wird ein Fehler ausgegeben. '-' Ist nicht in der Liste der Argumente.
File "C:\hogehoge\generateData\generate.py", line 23, in
<module>
args = parser.parse_args(sys.argv[sys.argv.index('--') + 1:])
ValueError: '--' is not in list
unknown argument, loading as file: --gender
Error: Cannot read file 'C:\hogehoge\generateData\--gender': No such file or directory
Es scheint eine Möglichkeit zu geben, dem Python-Skript mit Blender ein Argument hinzuzufügen und vor dem Argument'- 'hinzuzufügen.
run.bat
blender.exe --background --python generate.py -- --gender f --location i
Dann werden die Argumente in sys.argv gespeichert. Der Python-Code aus sys.argv zum Abrufen des Arguments mit argparse lautet wie folgt.
main()
import sys
import argparse
if '__main__' == __name__:
parser = argparse.ArgumentParser()
parser.add_argument('--gender', type=str, choices=['f', 'm'], required=True,
help='gender: f->female, m->male')
parser.add_argument('--location', type=str, choices=['i', 'o'], required=True,
help='location: i->inside, o->outside')
args = parser.parse_args(sys.argv[sys.argv.index('--') + 1:])
gender = args.gender
location = args.location
Sys.argv [sys.argv.index ('-') + 1:], das Argumente mit Argparse abruft, fühlt sich magisch an.
Recommended Posts