Could you paste the full terminal output of the command when you try it?
Could you paste the output of $ uname -a?
Could you paste the output of $ echo $PYTHONPATH?
Could you paste the output of $ python3 -c ‘import sys;print(sys.path)’?
Could you paste the output of $ dpkg -L python3-numpy?
Unfortunately I too have experienced the misery that is attempting to get even the simplest Python script working on a machine that is not the developer’s. Here are some good diagnostic steps, but ultimately it may be best to uninstall Python, or if it has metastasized past being understandable to your package manager, exorcise or defenestrate your computer. (I kid; your problem is likely solveable, it’s just Python itself that is not.)
Is there any reason why GPS is working in meshtastic-mui and in pygpsclient I get data in the console panel but no satellites in the lower left Satellites and Levels panels? It worked fine just a few days ago.
Is there a way to get the Meshtastic mui to recognize the keyboard fully. I can type out a message but have to open the app keyboard and click send. Have tried many combinations on the keyboard and can’t get it to send a message with the physical keyboard.
Hey @Rex - nice work on both the images and the HackerGadget AIO package.
I’m working up a little ADSB→Meshtastic bridge using dump1090GitHub - jamesarich/planetastic: dump1090 to meshtastic bridge . My proof of concept (not on my uConsole) worked great with a usb sdr.
However, when I went to test on my uConsole - I couldn’t connect to the running instance of dump1090(if one exists )
Error connecting to dump1090 at localhost:30003: [Errno 111] Connection refused
When trying to run my own instance of dump1090-mutability I got jammed up with:
Sun Aug 17 12:09:58 2025 CDT dump1090-mutability starting up.
Using sample converter: UC8, integer/table path
Found 1 device(s):
0: HackerGadgets, UC AIO Ext, SN: 25062501 (currently selected)
Kernel driver is active, or device is claimed by second instance of librtlsdr.
In the first case, please either detach or blacklist the kernel module
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time.
usb_claim_interface error -6
Error opening the RTLSDR device: Device or resource busy
I was able to work around this by blacklisting as suggested, but I’d rather not if there’s a better way.
I think you didn’t see it before because I don’t have that service running on startup. when readsb is running it takes control of the SDR, so other apps like SDR++ Brown won’t be able to use the SDR. The menu shortcut for tar1090 runs a script that starts readsb then opens tar1090.
if the previous didn’t work, PYTHONPATH=/usr/lib/python3/dist-packages python3 nrsc5-dui.py
What seems to be happening is that your package manager installed the module in{prefix}/lib/python<version>/dist-packages, but Python isn’t configured to look there; thus none of the directories shown in your $ dpkg -L query were shown in your Python’s sys.path that you printed in your python3 -c invocation. If that is the case one of these commands should work. The first command is preferred because it more closely matches the existing behavior of your system.
I don’t see the $ echo $PYTHONPATH output in your post. If there was no output whatsoever, just a blank line printed, that’s normal but still worth reporting.
Please check back here with a report of success or failure; there are ways to avoid having to add the PYTHONPATH assignment every time you run the script.
@trinity Sorry for not posting the results of $ echo $PYTHONPATH. It just gave me a blank line. Tried the two commands, the second one worked (PYTHONPATH=/usr/lib/python3/dist-packages python3 nrsc5-dui.py). It seems like when using apt install, it installs in the python3 directory. As you mentioned. is there a way to set PYTHONPAH to /usr/lib/python3/dist-packages so It doesn’t have to be typed every time? Thanks again for your help.
You are correct. dpkg is the program Debian uses to install and manage its packages, and apt is an additional program that eases package management by performing the tedium dpkg does not. You can find more information about them and their use in $ man 1 dpkg and $ man 1 apt (or on the web).
Alright. As I don’t have a testbed for this, you might have to bear with a bit of trial and error for this one, but it will be easy to revert any unproductive changes.
This command will attempt to use Python site-specific configuration to add that dist-packages/ subdirectory to the search path. It is preceded by a hash rather than a currency symbol to communicate that it is meant to be run as root. You can access a root shell with $ sudo sh, $ doas sh, or $ su -, depending on your configuration. I wrote it carefully to avoid unintended data loss but can’t claim perfection:
# x=/usr/lib/python3.11/site-packages/00-custom-dist-packages.pth; if test -e "$x"; then printf '%s already exists, perhaps move it to
%s.bak and try again\n' "$x" "$x"; else printf '/usr/lib/python3/dist-packages/\n' >"$x"; fi
This command (with an embedded Python program) will verify that it worked; it will print a smiley when numpy is importable, and a frowney when it is still borked. Ideally, run it on a separate terminal while you keep your root shell open.
If it prints a frowney, share the rest of the line that the frowney is on. Use this command to clear out the created file:
# rm -i "$x"
The -i prompts you before deletion, in case $x somehow got set to /docs/unix-haters-handbook.pdf or some other system-critical file while you weren’t looking.