Comment passer des arguments lors de l'appel d'un script python depuis Blender sur la ligne de commande

Chose que tu veux faire

Démarrez Blender en arrière-plan à partir de la ligne de commande et exécutez le traitement de Blender avec python. Je veux avoir des arguments lors de l'exécution de python.

Utilisez la bibliothèque argparse de python pour organiser les arguments.

Erreur

Prenez un argument et exécutez-le comme run.bat.

run.bat


blender.exe --background --python generate.py --gender f --location i

, Une erreur est générée. '-' N'est pas dans la liste des arguments.

  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

Solution

Il semble y avoir un moyen d'ajouter un argument au script python avec blender, et d'ajouter "-" avant l'argument.

run.bat


blender.exe --background --python generate.py -- --gender f --location i

Ensuite, les arguments sont conservés dans sys.argv. Le code python de sys.argv pour récupérer l'argument avec argparse est le suivant.

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

Impressions

Sys.argv [sys.argv.index ('-') + 1:], qui récupère les arguments en utilisant argparse, semble être magique.

référence

Recommended Posts

Comment passer des arguments lors de l'appel d'un script python depuis Blender sur la ligne de commande
Comment gérer les arguments lors de l'implémentation d'un script Python en tant qu'outil de ligne de commande
[Python / Tkinter] Comment passer des arguments à la commande
Comment recevoir des arguments de ligne de commande en Python
Comment créer un article à partir de la ligne de commande
Exécuter la fonction Python à partir de Powershell (comment passer des arguments)
Comment spécifier des arguments de ligne de commande lors du débogage avec PyCharm
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Comment passer des arguments à un script Python dans SPSS Modeler Batch
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
[EC2] Comment installer et télécharger chromedriver à partir de la ligne de commande
Comment masquer l'invite de commande lors de l'exécution de python dans Visual Studio 2015
Lors de l'exécution d'un shell Python à partir d'Electron, transmettez plusieurs arguments pour exécuter Python.
[Python] Comment tester l'analyseur de ligne de commande cliquez sur
Comprenons comment passer des arguments (édition Python)
Comment mesurer la vitesse de la ligne depuis le terminal
[Introduction à Udemy Python3 + Application] 67. Arguments de ligne de commande
Convertir XLSX en CSV sur la ligne de commande
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python
Mémo de correspondance lorsque la touche de direction ne peut pas être utilisée dans la ligne de commande python
[Python] Comment supprimer les valeurs en double de la liste
Réfléchissez à la programmation de Python sur votre iPad
Comment connaître le répertoire actuel en Python dans Blender
La première étape pour obtenir Blender disponible à partir de Python
Comment profiter de Python sur Android !! Programmation en déplacement !!
(Rappelez-vous rapidement) Comment utiliser la ligne de commande LINUX
Instructions d'utilisation de l'interface de ligne de commande AWS (Python / awscli) sous Mac OS X
Comment exécuter un programme Python à partir d'un script shell
Rechercher des fichiers volumineux sous Linux à partir de la ligne de commande
[Hyperledger Iroha] Remarques sur l'utilisation du SDK Python
Comment déployer Pybot, le manuel Python le plus simple, sur Heroku
[Python] Lire les arguments de ligne de commande à partir du nom de fichier ou de stdin
Lorsque vous souhaitez lancer une commande UNIX sur Python
Transmettez les données OpenCV de la bibliothèque C ++ d'origine à Python
Comment connaître le nombre de GPU de python ~ Remarques sur l'utilisation du multitraitement avec pytorch ~
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python (version non bloquante)
Comment reconstruire l'environnement python à partir de pyenv dans un environnement Mac (El Capitan)
Comment réussir et étudier l'examen de base de la certification d'ingénieur Python 3
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Précautions lors de l'exécution de Python sur EC2 à partir d'AWS Lambda (Exécuter la commande)
Comment gérer le problème du déplacement du répertoire actuel lorsque Python est exécuté depuis Atom
Dans la commande python, python pointe vers python3.8
Comment obtenir la version Python
Comment éviter la duplication des données lors de la saisie de Python vers SQLite.
Comment passer des arguments en utilisant une instance avec la commande systemctl de systemd
Comment extraire la chaîne de caractères souhaitée à partir d'une ligne 4 commandes
[Python + heroku] De l'état sans Python à l'affichage de quelque chose avec heroku (Partie 1)
[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse
Comment accéder à wikipedia depuis python
[Python + heroku] De l'état sans Python à l'affichage de quelque chose avec heroku (partie 2)
Comment mettre à jour la version Python de Cloud Shell dans GCP
Articles à lire lorsque le code de script Python de Blender ne fonctionne pas dans 2.80
Module standard Python utilisable en ligne de commande
À propos de l'erreur que j'ai rencontrée en essayant d'utiliser Adafruit_DHT à partir de Python sur Raspberry Pi
Mettre à jour Mac Python de 2 à 3
Comment réparer la merde lors de la lecture d'images Google Cloud Storage de Django déployées sur GAE
Installez Chrome en ligne de commande sur Sakura VPS (Ubuntu) et lancez Chrome avec python à partir de l'affichage virtuel et du sélénium
Comment utiliser gcc lors de la compilation d'une extension depuis setup.py sur Mac
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
Comment dessiner une ligne verticale sur une carte de chaleur dessinée avec Python Seaborn