#!/usr/bin/env python3 """ 依赖检查脚本 检查系统是否安装了所有必需的Python包 作者:太一 """ import sys import subprocess def check_package(package_name, import_name=None): """检查单个包是否安装""" if import_name is None: import_name = package_name.replace('-', '_') try: __import__(import_name) print(f"✅ {package_name:30s} - 已安装") return True except ImportError: print(f"❌ {package_name:30s} - 未安装") return False def main(): """主函数""" print("=" * 60) print("ExeProtector 依赖检查") print("=" * 60) print() # 必需的包 required_packages = { 'mysql-connector-python': 'mysql.connector', 'cryptography': 'cryptography', 'requests': 'requests', 'pyperclip': 'pyperclip', } # 可选的包 optional_packages = { 'flask': 'flask', # 仅API服务器需要 'pyinstaller': 'PyInstaller', # 仅打包需要 } # 检查必需包 print("检查必需依赖:") print("-" * 60) missing_required = [] for package, import_name in required_packages.items(): if not check_package(package, import_name): missing_required.append(package) print() # 检查可选包 print("检查可选依赖:") print("-" * 60) missing_optional = [] for package, import_name in optional_packages.items(): if not check_package(package, import_name): missing_optional.append(package) print() print("=" * 60) # 总结 if not missing_required and not missing_optional: print("✅ 所有依赖都已安装!") print() return 0 elif not missing_required: print("✅ 所有必需依赖都已安装") print(f"⚠️ 有 {len(missing_optional)} 个可选依赖未安装") print() print("如果需要安装可选依赖:") for pkg in missing_optional: print(f" pip install {pkg}") print() return 0 else: print(f"❌ 有 {len(missing_required)} 个必需依赖未安装") print() print("请运行以下命令安装缺失的依赖:") print() print(" pip install -r requirements.txt") print() print("或者逐个安装:") for pkg in missing_required: print(f" pip install {pkg}") print() return 1 if __name__ == '__main__': try: sys.exit(main()) except KeyboardInterrupt: print("\n\n中断执行") sys.exit(1) except Exception as e: print(f"\n\n错误: {e}") sys.exit(1)