49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
import sys
|
|
import subprocess
|
|
import importlib
|
|
|
|
REQUIRED_PACKAGES = ['PySide6', 'proxmoxer']
|
|
|
|
def check_and_install_packages():
|
|
missing_packages = []
|
|
for package in REQUIRED_PACKAGES:
|
|
try:
|
|
importlib.import_module(package.replace('-', '_'))
|
|
except ImportError:
|
|
missing_packages.append(package)
|
|
|
|
if missing_packages:
|
|
print(f"缺少必要的第三方库: {', '.join(missing_packages)}")
|
|
print("正在尝试自动安装...")
|
|
try:
|
|
subprocess.check_call([sys.executable, '-m', 'pip', 'install'] + missing_packages)
|
|
print("安装完成!")
|
|
return True
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"自动安装失败: {e}")
|
|
print(f"请手动运行: pip install {' '.join(missing_packages)}")
|
|
return False
|
|
return True
|
|
|
|
def main():
|
|
if not check_and_install_packages():
|
|
sys.exit(1)
|
|
|
|
try:
|
|
from PySide6.QtWidgets import QApplication
|
|
from main_window import MainWindow
|
|
|
|
app = QApplication(sys.argv)
|
|
app.setStyle('Fusion')
|
|
|
|
window = MainWindow()
|
|
window.show()
|
|
|
|
sys.exit(app.exec())
|
|
except Exception as e:
|
|
print(f"启动应用时发生错误: {e}")
|
|
sys.exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|