Praca nad projektami w języku Python na Raspberry Pi Zero W często zaczyna się w komfortowym środowisku Visual Studio Code. Chcąc wykorzystać wygodę zdalnego dostępu oferowaną przez rozszerzenie Remote – SSH, natknąłem się na niespodziewaną przeszkodę. Okazało się, że architektura ARMv6, serce Raspberry Pi Zero W, nie jest kompatybilna z serwerem vscode-server instalowanym przez Remote SSH. W poszukiwaniu wyjścia z tej sytuacji, zwróciłem się o pomoc do ChatGPT i znalazłem skuteczną alternatywę.
CharGPT: Oto komplet gotowych plików, które umożliwią Ci:
-
Wysłanie projektu z Maca na Raspberry Pi
-
Automatyczne utworzenie
venvna Raspberry Pi -
Instalację zależności z
requirements.txt -
Uruchomienie Twojego programu
📁 Struktura folderu pi-project na Twoim Macu
pi-project/
├── main.py
├── requirements.txt
├── install-on-pi.sh
└── deploy.sh
🧱 Zawartość plików
1. main.py — przykładowy kod Pythona
# main.py
import requests
print("Hello from Raspberry Pi!")
response = requests.get("https://api.github.com")
print("GitHub status:", response.status_code)
2. requirements.txt — lista bibliotek
requests
Dodawaj tu wszystko, co Twój projekt potrzebuje (np. flask, numpy, paho-mqtt itd.).
3. install-on-pi.sh — uruchamiane na Raspberry Pi
#!/bin/bash
echo "📦 Tworzenie środowiska wirtualnego..."
python3 -m venv venv
source venv/bin/activate
echo "📦 Instalacja zależności..."
pip install -r requirements.txt
echo "🚀 Uruchamianie programu..."
python main.py
Uczyń go wykonywalnym:
chmod +x install-on-pi.sh
4. deploy.sh — uruchamiane na Macu
#!/bin/bash
PI_USER=minimj
PI_HOST=raspberrypir2.local
REMOTE_DIR=/home/$PI_USER/pi-project
echo "📤 Wysyłanie projektu na Raspberry Pi..."
scp -r . "$PI_USER@$PI_HOST:$REMOTE_DIR"
echo "🔗 Łączenie przez SSH i uruchamianie skryptu instalacyjnego..."
ssh "$PI_USER@$PI_HOST" "cd $REMOTE_DIR && bash install-on-pi.sh"
Uczyń go wykonywalnym:
chmod +x deploy.sh
🚀 Jak uruchomić?
Z poziomu Maca:
cd ~/pi-project
./deploy.sh
Wszystko — łącznie z venv i instalacją zależności — wykona się automatycznie na Raspberry Pi.
Po przetestowaniu całości, które wypadło świetnie, poprosiłem ChatGPT o wyjaśnienie co dokładnie się działo na moim komputerze i na Raspberry Pi Zero W.
🖥️ Wyjaśniam co działo się na Twoim Macu:
-
Utworzyłeś folder projektu (np.
~/pi-project) i umieściłeś w nim:-
main.py– Twój kod w Pythonie, -
requirements.txt– listę bibliotek do zainstalowania na Pi, -
install-on-pi.sh– skrypt, który Raspberry Pi uruchamia, aby przygotować środowisko i uruchomić program, -
deploy.sh– skrypt uruchamiany z Maca, który:-
przesyła pliki na Raspberry Pi przez
scp, -
łączy się zdalnie przez
ssh, -
uruchamia
install-on-pi.shna Raspberry Pi.
-
-
-
Uruchomiłeś
deploy.sh, co zainicjowało cały proces.
🍓 Co działo się na Raspberry Pi Zero W:
-
📁 Pliki z projektu zostały przesłane do katalogu
~/pi-project. -
🐚 Raspberry Pi wykonał polecenia z
install-on-pi.sh:-
utworzył wirtualne środowisko Python (
venv) w katalogu projektu, -
aktywował to środowisko (
source venv/bin/activate), -
zainstalował bibliotekę
requests(zrequirements.txt) za pomocąpip, -
uruchomił Twój program
main.py.
-
-
🖨️ Program
main.pyzrobił zapytanie HTTP do GitHub API i wyświetlił status odpowiedzi — co potwierdziło, że:-
Raspberry Pi ma połączenie z internetem,
-
Python działa prawidłowo,
-
biblioteka
requestszostała zainstalowana poprawnie.
-
✅ Dzięki temu:
-
Programujesz lokalnie na Macu, gdzie masz wygodny edytor i szybki dostęp do plików.
-
Raspberry Pi wykonuje kod, instalując potrzebne zależności i działając jak mały serwer.
-
Wszystko dzieje się przez Wi-Fi/USB bez potrzeby monitora, klawiatury czy myszy.
Nowy skrypt deploy.sh, który wysyła zawartość foldera do Raspberry
Oto zaktualizowany, prosty i inteligentny skrypt deploy.sh, który:
-
używa
rsync(szybszy odscp), -
pomija
venv, -
może zainstalować zależności (jeśli chcesz),
-
uruchamia Twój program po przesłaniu.
📄 Plik deploy.sh
Umieść go lokalnie w folderze Twojego projektu na macOS (~/pi-project/deploy.sh):
#!/bin/bash# Zmienne – dostosuj w razie potrzebyPI_USER="pi"PI_HOST="raspberrypir2.local"PI_PROJECT_PATH="/home/pi/pi-project"LOCAL_PROJECT_PATH="$(pwd)"REMOTE="$PI_USER@$PI_HOST:$PI_PROJECT_PATH"echo "📦 Synchronizuję projekt na Raspberry Pi..."rsync -avz \--exclude'.venv'\--exclude'*.sh'\--exclude'*.pyc'\--exclude'__pycache__'\--exclude'.DS_Store'\--exclude'.git'\--exclude'.gitignore'\"$LOCAL_PROJECT_PATH/""$REMOTE/"echo "✅ Synchronizacja zakończona."echo "🔗 Łączenie przez SSH w celu aktywacji środowiska i uruchomienia programu..."ssh "$PI_USER@$PI_HOST" << 'EOF'cd ~/pi-projectsource venv/bin/activatepip install -r requirements.txtpython3 main.pyEOF🛠 Co robi skrypt?
-
Synchronizuje cały folder projektu z Pi (pomijając
venvi.git). -
Łączy się z Pi przez
ssh. -
Aktywuje zdalne środowisko wirtualne.
-
Instaluje wymagane biblioteki (z
requirements.txt). -
Uruchamia
main.py.
✅ Jak używać?
-
Upewnij się, że masz uprawnienia do wykonania:
chmod +x deploy.sh -
Uruchom z terminala:
./deploy.sh