From 1c746b0ff91eee764c96982ccdaf2bc375069fc2 Mon Sep 17 00:00:00 2001 From: Scheianu Ionut Date: Sat, 10 May 2025 22:54:28 +0300 Subject: [PATCH] created virtual env --- install.sh | 238 ++++---------------------------------------- src/media_player.py | 1 + 2 files changed, 23 insertions(+), 216 deletions(-) diff --git a/install.sh b/install.sh index 3fef73d..0f51c2e 100644 --- a/install.sh +++ b/install.sh @@ -3,17 +3,11 @@ # Define variables REPO_URL="https://gitea.moto-adv.com/ske087/signage-player.git" # Replace with your Gitea repository URL PROJECT_DIR="/home/pi/Desktop/ds-player" # Full path to the installation folder +VENV_DIR="$PROJECT_DIR/venv" # Path to the virtual environment SERVICE_NAME="ds-player.service" WIFI_SSID="CosaNostra" # Replace with your Wi-Fi SSID WIFI_PASSWORD="Leonardo" # Replace with your Wi-Fi password -# Define variables -REPO_URL="https://gitea.moto-adv.com/ske087/signage-player.git" # Replace with your Gitea repository URL -PROJECT_DIR="/home/pi/Desktop/ds-player" # Full path to the installation folder -SERVICE_NAME="ds-player.service" -#WIFI_SSID="Hating.Backup2-4G" # Replace with your Wi-Fi SSID -#WIFI_PASSWORD="EuropaUnita2020" # Replace with your Wi-Fi password - # Step 0: Check if Wi-Fi is enabled and connect to Wi-Fi echo "Checking if Wi-Fi is enabled..." if ! rfkill list wifi | grep -q "Soft blocked: no"; then @@ -65,20 +59,30 @@ sudo chmod -R 0777 "$PROJECT_DIR" # Step 5: Navigate to the project directory cd "$PROJECT_DIR" || { echo "Failed to navigate to project directory."; exit 1; } -# Step 6: Install Python dependencies -echo "Installing Python dependencies from requirements.txt..." -pip install -r requirements.txt --break-system-packages +# Step 6: Install Python virtual environment tools +echo "Installing Python virtual environment tools..." +sudo apt-get install -y python3-venv python3-pip -# Step 7: Install system dependencies for ffpyplayer +# Step 7: Create a virtual environment +echo "Creating a Python virtual environment in $VENV_DIR..." +python3 -m venv "$VENV_DIR" + +# Step 8: Activate the virtual environment and install dependencies +echo "Activating the virtual environment and installing dependencies..." +source "$VENV_DIR/bin/activate" +pip install --upgrade pip +pip install -r requirements.txt + +# Step 9: Install system dependencies for ffpyplayer echo "Installing system dependencies for ffpyplayer..." sudo apt-get install -y libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev \ libavcodec-dev libavformat-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libpostproc-dev -# Step 8: Install ffpyplayer -echo "Installing ffpyplayer..." -pip install ffpyplayer --break-system-packages +# Step 10: Install ffpyplayer in the virtual environment +echo "Installing ffpyplayer in the virtual environment..." +pip install ffpyplayer -# Step 9: Create a systemd service for autostart +# Step 11: Create a systemd service for autostart echo "Creating systemd service for autostart..." SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME" sudo bash -c "cat > $SERVICE_FILE" < /dev/null; then - echo "Not connected to Wi-Fi. Connecting to $WIFI_SSID..." - sudo bash -c "wpa_passphrase \"$WIFI_SSID\" \"$WIFI_PASSWORD\" > /etc/wpa_supplicant/wpa_supplicant.conf" - sudo wpa_cli -i wlan0 reconfigure - sleep 10 - if iwgetid -r > /dev/null; then - echo "Successfully connected to Wi-Fi: $WIFI_SSID" - else - echo "Failed to connect to Wi-Fi. Please check your credentials." - exit 1 - fi -else - echo "Already connected to Wi-Fi: $(iwgetid -r)" -fi - -# Step 1: Check if the installation folder exists -if [ -d "$PROJECT_DIR" ]; then - echo "Installation folder already exists: $PROJECT_DIR" - echo "Skipping installation steps and starting the service..." - sudo systemctl start "$SERVICE_NAME" - echo "Service started successfully!" - exit 0 -fi - -# Step 2: Update the system -echo "Updating the system..." -sudo apt-get update -y -sudo apt-get upgrade -y - -# Step 3: Clone the repository -echo "Cloning the repository from $REPO_URL..." -git clone "$REPO_URL" "$PROJECT_DIR" - -# Step 4: Set permissions for the project directory -echo "Setting permissions for the project directory to 0777..." -sudo chmod -R 0777 "$PROJECT_DIR" - -# Step 5: Navigate to the project directory -cd "$PROJECT_DIR" || { echo "Failed to navigate to project directory."; exit 1; } - -# Step 6: Install Python dependencies -echo "Installing Python dependencies from requirements.txt..." -pip install -r requirements.txt --break-system-packages - -# Step 7: Install system dependencies for ffpyplayer -echo "Installing system dependencies for ffpyplayer..." -sudo apt-get install -y libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev \ -libavcodec-dev libavformat-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libpostproc-dev - -# Step 8: Install ffpyplayer -echo "Installing ffpyplayer..." -pip install ffpyplayer --break-system-packages - -# Step 9: Create a systemd service for autostart -echo "Creating systemd service for autostart..." -SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME" -sudo bash -c "cat > $SERVICE_FILE" < /dev/null; then - echo "Not connected to Wi-Fi. Connecting to $WIFI_SSID..." - sudo bash -c "wpa_passphrase \"$WIFI_SSID\" \"$WIFI_PASSWORD\" > /etc/wpa_supplicant/wpa_supplicant.conf" - sudo wpa_cli -i wlan0 reconfigure - sleep 10 - if iwgetid -r > /dev/null; then - echo "Successfully connected to Wi-Fi: $WIFI_SSID" - else - echo "Failed to connect to Wi-Fi. Please check your credentials." - exit 1 - fi -else - echo "Already connected to Wi-Fi: $(iwgetid -r)" -fi - -# Step 1: Check if the installation folder exists -if [ -d "$PROJECT_DIR" ]; then - echo "Installation folder already exists: $PROJECT_DIR" - echo "Skipping installation steps and starting the service..." - sudo systemctl start "$SERVICE_NAME" - echo "Service started successfully!" - exit 0 -fi - -# Step 2: Update the system -echo "Updating the system..." -sudo apt-get update -y -sudo apt-get upgrade -y - -# Step 3: Clone the repository -echo "Cloning the repository from $REPO_URL..." -git clone "$REPO_URL" "$PROJECT_DIR" - -# Step 4: Set permissions for the project directory -echo "Setting permissions for the project directory to 0777..." -sudo chmod -R 0777 "$PROJECT_DIR" - -# Step 5: Navigate to the project directory -cd "$PROJECT_DIR" || { echo "Failed to navigate to project directory."; exit 1; } - -# Step 6: Install Python dependencies -echo "Installing Python dependencies from requirements.txt..." -pip install -r requirements.txt --break-system-packages - -# Step 7: Install system dependencies for ffpyplayer -echo "Installing system dependencies for ffpyplayer..." -sudo apt-get install -y libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev -sudo apt-get install -y libavcodec-dev libavformat-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libpostproc-dev - -# Step 8: Install ffpyplayer -echo "Installing ffpyplayer..." -pip install ffpyplayer --break-system-packages - -# Step 9: Create a systemd service for autostart -echo "Creating systemd service for autostart..." -SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME" -sudo bash -c "cat > $SERVICE_FILE" <