Exeprotector/check_dependencies.py
2025-10-23 18:28:10 +08:00

104 lines
2.7 KiB
Python

#!/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)