File size: 2,344 Bytes
d488241 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#!/usr/bin/env python
"""
Dependency checker script for Facebook Ad Analytics.
This script checks if all required dependencies are installed.
"""
import importlib
import sys
REQUIRED_PACKAGES = [
"flask",
"flask_sqlalchemy",
"flask_login",
"flask_wtf",
"flask_migrate",
"werkzeug",
"celery",
"redis",
"selenium",
"transformers",
"numpy",
"cv2", # OpenCV
"pytesseract",
"gunicorn",
"pytest",
"prophet",
"webdriver_manager",
"psycopg2",
"click",
"dotenv",
"ratelimit",
]
OPTIONAL_PACKAGES = [
"torch",
"tensorflow",
"flax",
]
def check_package(package_name):
"""Check if a package is installed."""
try:
importlib.import_module(package_name)
return True
except ImportError:
return False
def main():
"""Main function."""
print("Checking required dependencies...")
missing_packages = []
for package in REQUIRED_PACKAGES:
if not check_package(package):
missing_packages.append(package)
print(f"❌ {package} is not installed")
else:
print(f"✅ {package} is installed")
print("\nChecking optional dependencies...")
missing_optional = []
for package in OPTIONAL_PACKAGES:
if not check_package(package):
missing_optional.append(package)
print(f"⚠️ {package} is not installed (optional)")
else:
print(f"✅ {package} is installed")
if missing_packages:
print(f"\n❌ {len(missing_packages)} required packages are missing:")
print(" " + ", ".join(missing_packages))
print("\nPlease install them using:")
print(f"pip install {' '.join(missing_packages)}")
return 1
else:
print("\n✅ All required packages are installed!")
if missing_optional:
print(f"\n⚠️ {len(missing_optional)} optional packages are missing:")
print(" " + ", ".join(missing_optional))
print("\nYou may want to install them for full functionality:")
print(f"pip install {' '.join(missing_optional)}")
return 0
if __name__ == "__main__":
sys.exit(main()) |