Je souhaite mettre en place un environnement de développement avec Blender + python. L'éditeur et la console intégrés de Blender sont difficiles à utiliser, je veux donc l'utiliser à partir de vscode Je souhaite développer et déboguer mon propre module complémentaire et vérifier facilement le comportement de la fonction bpy.
Vous ne pouvez pas «importer bpy» en touchant directement le python de Blender. Vous devez exécuter python via blender.
How can I run blender from command line or a python script without opening a GUI? https://blender.stackexchange.com/questions/1365/how-can-i-run-blender-from-command-line-or-a-python-script-without-opening-a-gui
$ blender --background --python-console
Fera apparaître la console python.
https://github.com/JacquesLucke/blender_vscode
https://github.com/AlansCodeLog/blender-debugger-for-vscode
Il semble que cette zone puisse être utilisée.
Je vous remercie.
Transfert de données à grande vitesse avec le module complémentaire C ++ de Blender (méthode LuxBlend) https://qiita.com/vipper36/items/3e6012c3c770ade0d412
[Blender] Automatisez les tests des modules complémentaires Blender avec GitHub et TravisCI https://qiita.com/nutti/items/fe3f3f14168155df5916
Si vous voulez faire le mixeur ci-dessus en tant que module ou quelque chose de spécial, il sera rapide à construire à partir du code source.
https://wiki.blender.org/wiki/Building_Blender
Après avoir déposé le code source et le binaire prédéfini de la bibliothèque dépendante, Vous pouvez le construire simplement en faisant de base make. N'oubliez pas de faire le sous-module git. Si je ne le fais pas
file INSTALL cannot find
"/home/mdriftmeyer/DeveloperProjects/Blender-Repository/blender/release/datafiles/locale/languages".
J'obtiens une erreur autour de la locale.
https://developer.blender.org/T37760
Construire Blender lui-même ne prend pas beaucoup de temps car il existe un binaire prédéfini sur Ubuntu. Cela a pris environ 5 minutes avec Threadripper 1950X.
headless
$ make headless
Vous pouvez construire sans GUI.
Blender as module
Il existe une version qui fait de Blender lui-même un module python (libbpy.so
).
https://wiki.blender.org/wiki/Building_Blender/Other/BlenderAsPyModule
Avec cela, vous pouvez «importer bpy» avec votre interpréteur python préféré, etc., donc on s'attend à ce que le développement progresse, mais Ubuntu a un grand obstacle.
La commande build elle-même est simple.
$ make bpy
(Il appelle cmake en interne, c'est donc une bonne idée de jeter un œil à ses paramètres cmake.)
Premièrement, bpy.so est lié à la bibliothèque partagée, mais les bibliothèques prédéfinies n'ont que «.a». Il semble être déplaçable, mais la bibliothèque du système dont dépend «.a» est également liée à .a. Donc, j'obtiens une erreur lors de la liaison (par exemple libpng.a), libpng.a ou gomp.a (OpenMP).
Si libpng.a est entré avec apt, il ira dans / usr / lib / ..
, donc une fois que vous le supprimez avec apt, liez-le avec libpng.a du côté des bibliothèques prébultées. Vous pouvez le résoudre.
Cependant, libpng.a peut ne pas être effacé dans certains cas, il peut donc être sûr de construire bpy.so
autour de Docker.
gomp (OpenMP) dépend de l'environnement. Si vous avez un environnement tel que CUDA, il y a de fortes chances que gomp soit installé en relation avec gcc, et libgomp.a dans / usr / lib / ...
Vous obtiendrez un échec de construction en essayant de lier.
C'est difficile car si vous supprimez gomp, vous devez également supprimer le package du compilateur gcc. Après tout, il peut être bon de construire avec Docker.
De plus, si vous ne construisez pas avec WITH_MEM_JEMALLOC
désactivé,
cannot allocate memory in static TLS block
J'obtiens l'erreur lors de l'importation.
https://devtalk.blender.org/t/problem-with-running-blender-as-a-python-module/7367
En regardant les paramètres de CMake, il devrait être désactivé pour le moment sous Linux, mais pour une raison quelconque, il n'est pas reflété.
$ make deps
Vous pouvez créer les bibliothèques dépendantes à partir des sources avec.
Avec bashrc etc.
alias make=`make -j8`
Si vous essayez de construire en parallèle comme tel, la compilation échouera, il peut donc être préférable de vous assurer que l'alias n'est pas défini dans make avant de faire make deps
, mais dans ce cas 1 Il prend beaucoup de temps à construire car il ne repose que sur le noyau. Il peut être judicieux de construire en parallèle en prévision de plusieurs compilations.
Si vous créez la bibliothèque dépendante à partir de zéro, yasm (je l'utilise dans le système de codec vidéo si vous pensez pourquoi vous avez besoin d'un assembleur?!), Cela entre en conflit avec le boost du système et la construction de LLVM à partir de zéro est gênante.
Au moins OpenVDB n'a pas bien construit autour de boost pour une raison quelconque. Si vous n'utilisez pas VDB, pourquoi ne pas le construire pour l'instant?
Même si bpy.so
est créé avec succès et que l'importation ne plante pas, cette fois j'obtiens une erreur s'il n'y a pas de ʻio_xxx` etc. Celles-ci seront add_on, donc l'ajout de add_on devrait le résoudre. (Add_on related est géré par un autre dépôt git)
TODO
Recommended Posts