Ich möchte eine Entwicklungsumgebung mit Blender + Python einrichten. Der integrierte Editor und die Konsole von Blender sind schwierig zu verwenden, daher möchte ich sie über vscode verwenden Ich möchte mein eigenes Add-On entwickeln und debuggen und das Verhalten der bpy-Funktion einfach überprüfen.
Sie können bpy nicht importieren, indem Sie direkt auf die Python des Mixers klicken. Sie müssen Python über einen Mixer ausführen.
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
Ruft die Python-Konsole auf.
https://github.com/JacquesLucke/blender_vscode
https://github.com/AlansCodeLog/blender-debugger-for-vscode
Es scheint, dass dieser Bereich genutzt werden kann.
Vielen Dank.
Hochgeschwindigkeitsdatenübertragung mit dem C ++ - Add-On von Blender (LuxBlend-Methode) https://qiita.com/vipper36/items/3e6012c3c770ade0d412
[Blender] Automatisieren Sie Blender-Add-On-Tests mit GitHub und TravisCI https://qiita.com/nutti/items/fe3f3f14168155df5916
Wenn Sie den obigen Mixer als Modul oder etwas Besonderes verwenden möchten, können Sie ihn schnell aus dem Quellcode erstellen.
https://wiki.blender.org/wiki/Building_Blender
Nach dem Löschen des Quellcodes und der vorgefertigten Binärdatei der abhängigen Bibliothek Sie können es einfach erstellen, indem Sie Basic Make ausführen. Vergiss nicht, das Git-Submodul zu machen. Wenn ich nicht
file INSTALL cannot find
"/home/mdriftmeyer/DeveloperProjects/Blender-Repository/blender/release/datafiles/locale/languages".
Ich erhalte eine Fehlermeldung im Gebietsschema.
https://developer.blender.org/T37760
Das Erstellen von Blender selbst nimmt nicht viel Zeit in Anspruch, da es unter Ubuntu eine vorgefertigte Binärdatei gibt. Mit Threadripper 1950X dauerte es ungefähr 5 Minuten.
headless
$ make headless
Sie können ohne GUI erstellen.
Blender as module
Es gibt einen Build, der Blender selbst zu einem Python-Modul macht (libbpy.so
).
https://wiki.blender.org/wiki/Building_Blender/Other/BlenderAsPyModule
Auf diese Weise können Sie bpy mit Ihrem bevorzugten Python-Interpreter usw. importieren. Es wird also erwartet, dass die Entwicklung voranschreitet, aber Ubuntu hat eine hohe Hürde.
Der Build-Befehl selbst ist einfach.
$ make bpy
(Es ruft intern cmake auf, daher ist es eine gute Idee, sich die cmake-Einstellungen anzusehen.)
Erstens ist bpy.so mit der gemeinsam genutzten Bibliothek verknüpft, aber vorgefertigte Bibliotheken haben nur ".a". Es scheint verschiebbar zu sein, aber die Bibliothek des Systems, von dem ".a" abhängt, ist auch mit .a verknüpft. Daher wird beim Verknüpfen (z. B. libpng.a), libpng.a oder gomp.a (OpenMP) eine Fehlermeldung angezeigt.
Wenn libpng.a mit apt eingegeben wird, geht es zu / usr / lib / ..
. Wenn Sie es also mit apt löschen, verknüpfen Sie es mit libpng.a auf der prebult libs-Seite. Sie können es lösen.
In einigen Fällen wird libpng.a jedoch möglicherweise nicht gelöscht, sodass es sicher ist, "bpy.so" um Docker herum zu erstellen.
gomp (OpenMP) hängt von der Umgebung ab. Wenn Sie eine Umgebung wie CUDA haben, besteht eine hohe Wahrscheinlichkeit, dass gomp in Bezug auf gcc und libgomp.a in / usr / lib / ...
installiert wird Beim Versuch, eine Verknüpfung herzustellen, wird ein Build fehlgeschlagen.
Dies ist schwierig, da Sie beim Entfernen von gomp auch das gcc-Compilerpaket entfernen müssen. Schließlich kann es gut sein, mit Docker zu bauen.
Wenn Sie nicht mit deaktiviertem WITH_MEM_JEMALLOC erstellen,
cannot allocate memory in static TLS block
Ich erhalte den Fehler beim Importieren.
https://devtalk.blender.org/t/problem-with-running-blender-as-a-python-module/7367
Wenn Sie sich die CMake-Einstellungen ansehen, sollte sie vorerst unter Linux deaktiviert sein, aber aus irgendeinem Grund wird sie nicht wiedergegeben.
$ make deps
Sie können die abhängigen Bibliotheken aus dem Quellcode mit erstellen.
Mit bashrc etc.
alias make=`make -j8`
Wenn Sie versuchen, als solches parallel zu erstellen, schlägt die Kompilierung fehl. Stellen Sie daher möglicherweise besser sicher, dass der Alias nicht in make festgelegt ist, bevor Sie "make deps" ausführen, sondern in diesem Fall 1 Das Erstellen dauert lange, da es nur auf dem Kern aufbaut. Es kann eine gute Idee sein, in Erwartung mehrerer Kompilierungen parallel zu erstellen.
Wenn Sie die abhängige Bibliothek von Grund auf neu erstellen, yasm (ich verwende sie im Video-Codec-System, wenn Sie denken, warum Sie einen Assembler benötigen ?!), Widerspricht dies dem System-Boost, und das Erstellen von LLVM von Grund auf ist problematisch.
Zumindest hat OpenVDB aus irgendeinem Grund nicht gut um Boost herum gebaut. Wenn Sie VDB nicht verwenden, warum bauen Sie es nicht erst einmal aus?
Selbst wenn bpy.so
erfolgreich erstellt wurde und der Import nicht abstürzt, wird diesmal eine Fehlermeldung angezeigt, wenn kein io_xxx
usw. vorhanden ist. Diese werden add_on sein, daher sollte das Hinzufügen von add_on das Problem lösen. (Add_on wird von einem anderen Git-Repo verwaltet)
TODO
Recommended Posts