Installer divided into several modules and added new MessageDialog module

This commit is contained in:
2025-06-14 22:16:15 +02:00
parent f288a2bd7f
commit 58ca160050
31 changed files with 1178 additions and 712 deletions

68
ensure_modules.py Normal file
View File

@ -0,0 +1,68 @@
import sys
import os
# ✅ Path to be added in the .pth file
SHARED_LIBS_PATH = "/usr/local/share/shared_libs"
PTH_FILE_NAME = "shared_libs.pth"
def ensure_shared_libs_pth_exists():
"""
Checks if all site-packages directories have a `.pth` file with the correct path.
Creates or updates it if missing or incorrect.
"""
# Search for all site-packages directories (e.g., /usr/lib/python3.x/site-packages/)
for root, dirs, files in os.walk("/usr"):
if "site-packages" in dirs:
site_packages_dir = os.path.join(root, "site-packages")
pth_file_path = os.path.join(site_packages_dir, PTH_FILE_NAME)
# Check if the file exists and is correct
if not os.path.exists(pth_file_path):
print(f"⚠️ .pth file not found: {pth_file_path}. Creating...")
with open(pth_file_path, "w") as f:
f.write(SHARED_LIBS_PATH + "\n")
else:
# Check if the correct path is in the file
with open(pth_file_path, "r") as f:
content = f.read().strip()
if not content == SHARED_LIBS_PATH:
print(f"⚠️ .pth file exists but has incorrect content. Fixing...")
with open(pth_file_path, "w") as f:
f.write(SHARED_LIBS_PATH + "\n")
print("✅ All .pth files checked and corrected.")
def main():
try:
# Try to import the module
from shared_libs.wp_app_config import AppConfig
print("'shared_libs' is correctly loaded. Starting the application...")
# Your main program logic here...
except ModuleNotFoundError as e:
# Only handle errors related to missing .pth file
if "No module named 'shared_libs'" in str(e):
print("⚠️ Error: 'shared_libs' module not found. Checking .pth file...")
ensure_shared_libs_pth_exists()
# Try again after fixing the .pth file
try:
from shared_libs.wp_app_config import AppConfig
print("✅ After correcting the .pth file: Module loaded.")
# Your main program logic here...
except Exception as e2:
print(f"❌ Error after correcting the .pth file: {e2}")
else:
# For other errors, re-raise them
raise
if __name__ == "__main__":
main()