Übergeben von Argumenten beim Aufrufen von Python-Skripten über Blender in der Befehlszeile

Was du machen willst

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.

Error

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

Lösungen

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

Impressionen

Sys.argv [sys.argv.index ('-') + 1:], das Argumente mit Argparse abruft, fühlt sich magisch an.

Referenz

Recommended Posts

Übergeben von Argumenten beim Aufrufen von Python-Skripten über Blender in der Befehlszeile
Verwalten von Argumenten beim Implementieren eines Python-Skripts als Befehlszeilentool
[Python / Tkinter] Übergeben von Argumenten an den Befehl
So empfangen Sie Befehlszeilenargumente in Python
So erstellen Sie einen Artikel über die Befehlszeile
Führen Sie die Python-Funktion von Powershell aus (wie Sie Argumente übergeben).
So geben Sie Befehlszeilenargumente beim Debuggen mit PyCharm an
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Übergeben von Argumenten an Python-Skripte in SPSS Modeler Batch
So erhalten Sie eine Zeichenfolge aus einem Befehlszeilenargument in Python
[EC2] So installieren und laden Sie chromedriver über die Befehlszeile herunter
So blenden Sie die Eingabeaufforderung aus, wenn Sie Python in Visual Studio 2015 ausführen
Übergeben Sie beim Ausführen einer Python-Shell von Electron mehrere Argumente, um Python auszuführen.
[Python] So testen Sie den Befehlszeilen-Parser-Klick
Lassen Sie uns verstehen, wie Argumente übergeben werden (Python Edition)
So messen Sie die Leitungsgeschwindigkeit vom Terminal aus
[Einführung in Udemy Python3 + Application] 67. Befehlszeilenargumente
Konvertieren Sie XLSX in CSV in der Befehlszeile
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Korrespondenznotiz, wenn die Richtungstaste nicht in der Python-Befehlszeile verwendet werden kann
[Python] So entfernen Sie doppelte Werte aus der Liste
Überlegen Sie, wie Sie Python auf Ihrem iPad programmieren können
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
Der erste Schritt, um Blender von Python verfügbar zu machen
Wie man Python auf Android genießt !! Programmieren für unterwegs !!
(Denken Sie schnell daran) Verwendung der LINUX-Befehlszeile
Anweisungen zur Verwendung der AWS-Befehlszeilenschnittstelle (Python / awscli) unter Mac OS X.
So führen Sie ein Python-Programm in einem Shell-Skript aus
Suchen Sie unter Linux über die Befehlszeile nach großen Dateien
[Hyperledger Iroha] Hinweise zur Verwendung des Python SDK
So stellen Sie Pybot, das einfachste Python-Lehrbuch, auf Heroku bereit
[Python] Befehlszeilenargumente aus Dateiname oder Standard lesen
Wenn Sie einen UNIX-Befehl in Python ausführen möchten
Übergeben Sie die OpenCV-Daten der ursprünglichen C ++ - Bibliothek an Python
Wie man die Anzahl der GPUs aus Python kennt ~ Hinweise zur Verwendung von Multiprocessing mit pytorch ~
Übergeben des Ausführungsergebnisses eines Shell-Befehls in einer Liste in Python (nicht blockierende Version)
So erstellen Sie eine Python-Umgebung aus Pyenv in einer Mac-Umgebung (El Capitan)
Bestehen und Studieren der Python 3 Engineer-Zertifizierungsgrundprüfung
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Vorsichtsmaßnahmen beim Ausführen von Python unter EC2 über AWS Lambda (Befehl ausführen)
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
Im Python-Befehl zeigt Python auf Python3.8
So erhalten Sie die Python-Version
So vermeiden Sie doppelte Daten bei der Eingabe von Python in SQLite.
Übergeben von Argumenten mithilfe einer Instanz mit dem systemctl-Befehl von systemd
So extrahieren Sie die gewünschte Zeichenfolge aus einem Befehl in Zeile 4
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
So greifen Sie über Python auf Wikipedia zu
[Python + Heroku] Vom Zustand ohne Python zur Anzeige von etwas mit Heroku (Teil 2)
So aktualisieren Sie die Python-Version von Cloud Shell in GCP
Artikel zum Lesen, wenn Blenders Python-Skriptcode in 2.80 nicht funktioniert
Python-Standardmodul, das in der Befehlszeile verwendet werden kann
Über den Fehler, den ich beim Versuch, Adafruit_DHT von Python auf Raspberry Pi zu verwenden, festgestellt habe
Aktualisieren Sie Mac Python von 2 auf 3
So beheben Sie die Probleme beim Lesen von Google Cloud Storage-Bildern von Django, die auf GAE bereitgestellt wurden
Installieren Sie Chrome in der Befehlszeile von Sakura VPS (Ubuntu) und starten Sie Chrome mit Python über das virtuelle Display und Selen
Verwendung von gcc beim Kompilieren einer Erweiterung aus setup.py auf einem Mac
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Wie zeichnet man eine vertikale Linie auf einer Heatmap, die mit Python Seaborn gezeichnet wurde?