a57dbc0252
功能: - 多主机管理 (增删改查, 密码/私钥双认证, 导入导出) - 远程终端 (命令执行 + 常用命令快捷栏 + 超时控制) - SFTP 文件浏览 (上传/下载带进度, 新建/删除/重命名) - 实时监控 (CPU/内存/磁盘/网络, 1-10秒可调刷新) - AI Agent (OpenAI 兼容 API, 5 工具自动调用: 命令/指标/列文件/读文件/上传) 技术栈: PyQt5 + paramiko + psutil + requests + PyInstaller 打包: build_windows.bat / build.sh 一键产出 ~57MB 单文件 exe 测试: core 6/6 + UI 3/3 + E2E 6/6 全部通过
49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
"""
|
|
SSHClient 入口
|
|
"""
|
|
import sys
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# 让 PyInstaller 打包后能找到资源
|
|
def _setup_path():
|
|
if getattr(sys, "frozen", False):
|
|
# 打包后:exe 所在目录
|
|
bundle_dir = Path(sys.executable).parent
|
|
sys.path.insert(0, str(bundle_dir))
|
|
else:
|
|
# 源码运行:项目根
|
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
|
|
|
|
_setup_path()
|
|
|
|
from PyQt5.QtWidgets import QApplication
|
|
from PyQt5.QtCore import Qt
|
|
from PyQt5.QtGui import QFont
|
|
|
|
from ui.main_window import MainWindow, APP_NAME
|
|
|
|
|
|
def main():
|
|
# Windows 上高 DPI 适配
|
|
if hasattr(Qt, "AA_EnableHighDpiScaling"):
|
|
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
|
|
if hasattr(Qt, "AA_UseHighDpiPixmaps"):
|
|
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True)
|
|
|
|
app = QApplication(sys.argv)
|
|
app.setApplicationName(APP_NAME)
|
|
app.setStyle("Fusion")
|
|
# 全局等宽字体偏好
|
|
f = QFont("Consolas", 10)
|
|
app.setFont(f)
|
|
|
|
w = MainWindow()
|
|
w.show()
|
|
sys.exit(app.exec_())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|