Python quick start for the Linux Barcode Scanner SDK
Build a lightweight barcode scanner in Python for Linux. The command-line interface accepts a single image path as input, and the Scanbot SDK license key is embedded directly in the source code.
Create the project and install the Scanbot SDK
1. Install Python and OpenCV
sudo apt update
sudo apt install -y python3-venv python3-opencv
2. (Optional) Install CUDA + TensorRT for GPU acceleration
Requires Jetpack 6.1, CUDA 12.6, and TensorRT 10.3
sudo apt install -y nvidia-l4t-cuda libnvinfer10 libnvinfer-plugin10 libnvonnxparsers10
3. Create and activate a virtual environment
python3 -m venv .env --system-site-packages
source .env/bin/activate
pip install --upgrade pip setuptools wheel
4. Install the Scanbot SDK
- ARM64
- x86_64
Replace <SCANBOT_SDK_VERSION> with the version number you want to install.
export SCANBOT_SDK_VERSION=<SCANBOT_SDK_VERSION>
pip install https://github.com/doo/scanbot-sdk-example-linux/releases/download/standalone-sdk%2Fv${SCANBOT_SDK_VERSION}/scanbotsdk-${SCANBOT_SDK_VERSION}-py3-none-linux_aarch64.whl
Replace <SCANBOT_SDK_VERSION> with the version number you want to install.
export SCANBOT_SDK_VERSION=<SCANBOT_SDK_VERSION>
pip install https://github.com/doo/scanbot-sdk-example-linux/releases/download/standalone-sdk%2Fv${SCANBOT_SDK_VERSION}/scanbotsdk-${SCANBOT_SDK_VERSION}-py3-none-linux_x86_64.whl
5. Verify installation
python -c "import scanbotsdk; print('scanbotsdk OK')"
Performance notes (Jetson only)
To avoid throttling, temporarily max out clocks and fan:
sudo jetson_clocks --store
sudo jetson_clocks
sudo jetson_clocks --restore
Project layout
Create a minimal project folder with a single entry-point script
mkdir -p barcode-quickstart-python && \
touch barcode-quickstart-python/main.py
Initialize the Scanbot SDK
Before using any feature of the Scanbot SDK in Python, initialize the SDK.
import scanbotsdk
from scanbotsdk import LicenseStatus
SCANBOT_LICENSE_KEY = "<SCANBOTSDK-LICENSE-KEY>"
def initialize_sdk() -> None:
scanbotsdk.initialize(SCANBOT_LICENSE_KEY)
license_info = scanbotsdk.get_license_info()
print(f"License Status: {license_info.status}")
if license_info.status != LicenseStatus.OKAY:
raise SystemExit("Invalid or expired license. Exiting.")
Create and run the Barcode Scanner
After successful initialization, create a scanner configuration and run it on an ImageRef.
def run_barcode_scanner(image: ImageRef):
config = BarcodeScannerConfiguration()
scanner = BarcodeScanner(configuration=config)
result = scanner.run(image=image)
if not result.barcodes:
print("No barcodes found.")
return
for idx, barcode in enumerate(result.barcodes, 1):
print(f"{idx}) {barcode.text} [{barcode.format}]")
Complete example
import sys
import scanbotsdk
from scanbotsdk import (
LicenseStatus,
DeviceSession,
ImageRef,
BarcodeScanner,
BarcodeScannerConfiguration,
)
SCANBOT_LICENSE_KEY = "<SCANBOTSDK-LICENSE-KEY>"
def initialize_sdk() -> None:
scanbotsdk.initialize(SCANBOT_LICENSE_KEY)
license_info = scanbotsdk.get_license_info()
print(f"License Status: {license_info.status}")
if license_info.status != LicenseStatus.OKAY:
raise SystemExit("Invalid or expired license. Exiting.")
def run_barcode_scanner(image: ImageRef) -> None:
config = BarcodeScannerConfiguration()
scanner = BarcodeScanner(configuration=config )
result = scanner.run(image=image)
if not result.barcodes:
print("No barcodes found.")
return
for idx, barcode in enumerate(result.barcodes, 1):
print(f"{idx}) {barcode.text} [{barcode.format}]")
def main():
if len(sys.argv) < 2:
print("Usage: python main.py <image_path>")
return
image_path = sys.argv[1]
initialize_sdk()
image = ImageRef.from_path(image_path)
run_barcode_scanner(image)
if __name__ == "__main__":
main()
Run
python main.py /path/to/image_with_barcodes.jpg
🚀 That's it! You've built a minimal barcode scanner in Python on Linux.
💡 In this quick start guide, we use the SDK's default scanner settings. However, you can freely customize the configuration, supported barcode types, and performance options.
Get in touch
If you need further information or are interested in licensing the Scanbot SDK, please get in touch with our solution experts.