updated to browser view

This commit is contained in:
2025-09-24 17:33:34 +03:00
parent 140ae25231
commit b458b9bbef
4 changed files with 117 additions and 126 deletions

58
dependency_utils.py Normal file
View File

@@ -0,0 +1,58 @@
import importlib.util
import subprocess
import sys
import os
def install_package_from_wheel(wheel_path, package_name):
"""
Install a Python package from a wheel file
"""
try:
print(f"Installing {package_name} from {wheel_path}...")
result = subprocess.run([
sys.executable, "-m", "pip", "install", wheel_path,
"--no-index", "--no-deps", "--break-system-packages",
"--no-warn-script-location", "--force-reinstall"
], capture_output=True, text=True, timeout=60)
if result.returncode == 0:
print(f"{package_name} installed successfully")
return True
else:
print(f"✗ Failed to install {package_name}: {result.stderr}")
return False
except Exception as e:
print(f"✗ Error installing {package_name}: {e}")
return False
def check_and_install_dependencies(required_packages, repository_path):
"""
Check if required packages are installed and install them from local repository if needed
"""
print("Checking and installing dependencies...")
missing_packages = []
for package_name, wheel_file in required_packages.items():
try:
spec = importlib.util.find_spec(package_name)
if spec is not None:
continue # Already installed
else:
print(f"{package_name} is not installed")
missing_packages.append((package_name, wheel_file))
except ImportError:
print(f"{package_name} is not installed")
missing_packages.append((package_name, wheel_file))
except Exception as e:
print(f"✗ Error checking {package_name}: {e}")
missing_packages.append((package_name, wheel_file))
if missing_packages:
print(f"\nInstalling {len(missing_packages)} missing packages...")
for package_name, wheel_file in missing_packages:
if wheel_file is None:
print(f"No wheel file for {package_name}, please install manually if needed.")
continue
wheel_path = os.path.join(repository_path, wheel_file)
if not os.path.exists(wheel_path):
print(f"✗ Wheel file not found: {wheel_path}")
continue
install_package_from_wheel(wheel_path, package_name)
print("Dependency check completed.\n")