install.py
Palaist: python3 install.py
import sys
import subprocess
def run_command(command, use_sudo=False):
try:
if use_sudo:
command.insert(0, "sudo")
subprocess.check_call(command)
print(" ".join(command))
except subprocess.CalledProcessError:
print("FAILED:", " ".join(command))
print("\n=== Updating system packages ===\n")
run_command(["apt", "update"], use_sudo=True)
# --- System dependencies ---
system_packages = [
"python3-pip",
"python3-venv",
"python3-dev",
"python3-numpy",
"python3-pandas",
"python3-opencv",
"python3-flask",
"python3-flask-socketio",
"python3-paramiko",
"python3-pyqt5",
"python3-urllib3",
"python3-requests",
"python3-chardet",
"libsdl2-image-2.0-0",
"libhdf5-dev",
"libatlas-base-dev",
"libusb-1.0-0-dev",
"libopenjp2-7",
"libopenjp2-7-dev",
"net-tools",
"wireless-tools",
"iw",
"rfkill"
]
for pkg in system_packages:
run_command(["apt", "install", "-y", pkg], use_sudo=True)
# --- Python packages (pip) ---
python_pip_packages = [
"depthai",
"depthai-sdk",
"Kivy",
"pynmea2"
]
print("\n=== Installing Python packages with pip ===\n")
for pkg in python_pip_packages:
run_command(
[sys.executable, "-m", "pip", "install", "--break-system-packages", pkg]
)
# --- Permissions ---
target_folder = "/home/pi/Desktop/WEEDER_PREMIUM_MULTI"
print(f"\nSetting chmod 777 to: {target_folder}")
run_command(["chmod", "-R", "777", target_folder], use_sudo=True)
# --- UDEV rule for DepthAI camera ---
print("\nCreating USB rule for DepthAI...")
depthai_rule = 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"'
run_command(
["bash", "-c", f"echo '{depthai_rule}' | tee /etc/udev/rules.d/80-movidius.rules"],
use_sudo=True
)
run_command(["udevadm", "control", "--reload-rules"], use_sudo=True)
run_command(["udevadm", "trigger"], use_sudo=True)
print("\n=== Installation complete ===\n")
install.py.txt · Last modified: by 46.109.187.144
