Results of Microsoft Copilot AI search 15/5/2026. I do not know whether this works.
Yes, it is possible to create a single distributable executable or package from a GNU Radio script, but it requires careful handling of dependencies, especially the GNU Radio libraries. Here’s a detailed overview of the approaches:
Options for Distribution
1. Using PyInstaller
GNU Radio scripts are typically Python-based, so PyInstaller can package Python scripts into a standalone executable.
pip install pyinstaller
Steps:
- Prepare your script (e.g., my_gr_script.py).
- Create the executable:
pyinstaller –onefile my_gr_script.py
- –onefile combines everything into a single executable.
4. Handle GNU Radio Dependencies:
GNU Radio relies on shared libraries (.so files on Linux, .dll files on Windows). You may need to specify paths using the –paths option or a .spec file.
Example .spec customization (for complex environments):
# my_gr.spec
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis([‘my_gr_script.py‘],
pathex=[‘/path/to/scripts’],
binaries=[],
datas=[],
hiddenimports=[‘gnuradio’, ‘gnuradio.blocks’, ‘gnuradio.fft’],
hookspath=[],
runtime_hooks=[])
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=’my_gr_app’,
debug=False,
strip=False,
upx=True,
console=True )
Then run:
pyinstaller my_gr.spec
2. Creating a Docker Image
For full reproducibility and dependency management:
- Write a Dockerfile:
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y gnuradio python3 python3-pip
COPY my_gr_script.py /opt/my_gr_script.py
CMD [“python3”, “/opt/my_gr_script.py“]
6. Build and distribute the Docker image:
docker build -t my_gr_app .
docker run my_gr_app
- This ensures the exact GNU Radio environment is packaged.
3. Using Conda Environments
Create a Conda environment containing GNU Radio and your script:
conda create -n my_gr_env python=3.11 gnuradio
conda activate my_gr_env
conda install pyinstaller
pyinstaller –onefile my_gr_script.py
- Users can then run your executable without installing GNU Radio separately.
Recommendations
- Prefer Docker for maximum portability across OSes without worrying about shared libraries.
- PyInstaller alone works but may require additional tweaking due to GNU Radio’s complex dependencies.
- Always test the executable on a clean system to ensure all dependencies are included.
Usage Example
# After PyInstaller build
./dist/my_gr_script
- Should run your GNU Radio flowgraph as a standalone application.
By combining these approaches, you can create a distributable that contains your GNU Radio script and required components, making it easy to share and run elsewhere.