Hi Thank you very much for providing this bit of information (it works now, after another final piece has been dealt with - details below).
Please don’t take this the wrong way - people don’t read the documentation. Even if its as good as yours and I can tell that you’ve put a lot of effort into it. Also error messages should provide some clue about what has gone wrong, I’m not going to look up the offending Python line causing a runtime error, even if the code is open-source. Tools, code and their usage needs to be as much as possible self-evident.
That being said, even after adding the director to $PYTHONPATH I had the following error
pyuavcan publish uavcan.diagnostic.Record.1.0 '{"text": "Hello world!"}' --tr='CAN(can.media.socketcan.SocketCANMedia("vcan0",8),59)'
Error: RuntimeError: Subsystem factory 'NodeFactory' for command 'publish' has failed: No module named 'serial'
Quite annoying, because I don’t need serial at all. Fixed by
python3.8 -m pip install pyserial
EDIT: Adding documentation of success case
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
candump -decaxta vcan0
(1591276745.132963) vcan0 TX - - 107D553B [8] 00 00 00 00 00 A3 03 E0 '........'
(1591276745.133101) vcan0 TX - - 107FF83B [8] 00 00 00 00 00 00 00 A0 '........'
(1591276745.133181) vcan0 TX - - 107FF83B [8] 00 0C 48 65 6C 6C 6F 00 '..Hello.'
(1591276745.133221) vcan0 TX - - 107FF83B [8] 20 77 6F 72 6C 64 21 20 ' world! '
(1591276745.133292) vcan0 TX - - 107FF83B [3] 00 F5 40 '..@'
(1591276746.135043) vcan0 TX - - 107D553B [8] 01 00 00 00 00 A3 03 E1 '........'