BlendArMocap
BlendArMocap copied to clipboard
Creation of external executable to remove external dependencies
Issues due to the requirement of external dependencies
Various issues can arise due to:
- Bad packaging of the packages itself
- Missing C++ Libs required for building
- Other add-ons which overwrite / change package contents
- Multiple packages of the same type
- Requirement of user site packages on Linux
Those issues can usually only fixed manually. I created a section to do so in the documentation.
Future of external dependencies
In the future, I'd love an external tool, using a socket to send data to blender. The external tool should be application which contains all requirements and doesn't afford any user sided installation.
I've started working on an external executable for BlendArMocap, a while ago but it's still work in progress.
I'm happy about anyone about to join the development of the external executable for BlendArMocap.
I'm a Windows user, but unfortunately my experience with containerization software is limited.
I think Python's versioning systems is a hot mess, but instead of grappling with the above, is it possible to work through the issues instead? Once I did get the BlendARmocap pre-reqs to install, had no further problems. It's now solid.
In my case I think it was because the pre-reqs were being installed in the wrong site-packages directory. Did Google around and find seems to be a common problem: https://discuss.python.org/t/understanding-site-packages-directories/12959
I'm a Windows user, but unfortunately my experience with containerization software is limited.
I think Python's versioning systems is a hot mess, but instead of grappling with the above, is it possible to work through the issues instead? Once I did get the BlendARmocap pre-reqs to install, had no further problems. It's now solid.
In my case I think it was because the pre-reqs were being installed in the wrong site-packages directory. Did Google around and find seems to be a common problem: https://discuss.python.org/t/understanding-site-packages-directories/12959
It's a long term goal. It's a mess on all systems, an annoyance on macOS and a real bummer on linux. There are issues which cannot be resolved, that's why I would like to get an external application running in the future.
- On all systems, packaging is a mess.
- Requirement of elevated privileges to install dependencies.
- Blender doesn't always come with pip.
- Other add-on developers may install or have installed other dependencies which break blendarmocaps dependency tree.
- On macOS you have to start blender via the terminal to run webcam detection (due to missing camera permission in blender plist)
- On newer mac os systems you even have to make changes in the system settings to install dependencies even with elevated privileges
- On linux you have to install dependencies system wide as blender doesn't come with it's own pip and site packages.
- Many packages on linux are broken, therefore it may be necessary to install packages via the local package manager or build them from source.
- Of course some systems are just not supported, but that's way out of the scope.
By default, the packages -should- install in blenders site packages. There's a 'local' flag, to install the packages in the users site packages which then get linked to blender (may requires a restart of the software). But I'd like that the add-on doesn't external packages.
I'll rethink this a couple of times. I have a python and c++ software dummy laying around. As I'd like to do all calculations externally in the end, c++ seems to be the better route. Maybe I'll end up with a couple of VMs as I'm not deep into containers but it would be more flexible in the long run.