当前位置: 首页 > news >正文

windows可视化界面管理服务器上的env文件

需求:在 Windows 环境中通过可视化界面编辑位于 Linux 主机上的 env 文件的情况,我现在环境是windows环境,我的env文件在linux的192.168.20.124上,用户是op,密码是op,文件绝对路径是/home/op/compose/env
在这里插入图片描述

import tkinter as tk
from tkinter import messagebox, ttk
import paramikodef save_changes():new_values = [f"{key}={value.get()}" for key, value in entries.items()]new_content = '\n'.join(new_values)try:# Create a SSH clientssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(hostname, username=username, password=password)# Write new content to the remote filewith ssh.open_sftp().file(remote_env_file_path, 'w') as f:f.write(new_content)ssh.close()messagebox.showinfo('Success', 'Changes saved!')except Exception as e:messagebox.showerror('Error', f'An error occurred: {str(e)}')hostname = "192.168.20.124"
username = "op"
password = "op"
remote_env_file_path = "/home/op/compose/env"# Load existing key-value pairs from remote env file
entries = {}
try:ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(hostname, username=username, password=password)with ssh.open_sftp().file(remote_env_file_path, 'r') as f:for line in f:key, value = line.strip().split('=', 1)entries[key] = valuessh.close()
except Exception as e:print(f'An error occurred: {str(e)}')# Create GUI window
window = tk.Tk()
window.title("Remote Environment Variable Editor")
window.geometry("400x400")  # Set the initial window size# Create and place widgets
frame = ttk.Frame(window)
frame.pack(fill=tk.BOTH, expand=True)canvas = tk.Canvas(frame)
canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)scrollbar = ttk.Scrollbar(frame, command=canvas.yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)canvas.configure(yscrollcommand=scrollbar.set)
canvas.bind('<Configure>', lambda e: canvas.configure(scrollregion=canvas.bbox("all")))inner_frame = tk.Frame(canvas)
canvas.create_window((0, 0), window=inner_frame, anchor='nw')row = 0
for key, value in entries.items():key_label = tk.Label(inner_frame, text=key)key_label.grid(row=row, column=0, padx=10, pady=5, sticky="e")value_entry = tk.Entry(inner_frame)value_entry.insert(0, value)value_entry.grid(row=row, column=1, padx=10, pady=5, sticky="w")entries[key] = value_entryrow += 1save_button = tk.Button(inner_frame, text="Save Changes", command=save_changes)
save_button.grid(row=row, columnspan=2, pady=10)# Start GUI event loop
window.mainloop()

导出成应用
将Python脚本打包成一个可执行的应用程序通常需要使用第三方库,例如PyInstaller或cx_Freeze。这些工具可以将Python代码和依赖项打包成一个独立的可执行文件,从而使应用程序在没有Python解释器的情况下也能运行。

以下是使用PyInstaller将Python脚本打包成可执行应用程序的步骤:

安装PyInstaller:

打开命令行终端,并输入以下命令来安装PyInstaller:

pip install pyinstaller
打包应用程序:

在命令行中,进入包含你的Python脚本的目录,然后运行以下命令来生成可执行文件:

pyinstaller --onefile your_script_name.py

http://www.lryc.cn/news/137069.html

相关文章:

  • 自然语言处理在智能客服和聊天机器人中的应用
  • 为什么不建议使用@Async注解创建线程
  • 更新Ubuntu18.04上的CUDA和GCC
  • 算法通过村第6关【青铜】| 如何通过中序和后序遍历恢复二叉树
  • 高斯牛顿法和LM算法异同示例
  • 奥威BI财务数据分析方案:只做老板想看的
  • opencv进阶19-基于opencv 决策树cv::ml::DTrees 实现demo示例
  • Unity通过TCP/IP协议进行通信
  • 基于VuePress搭建知识库
  • odoo安装启动遇到的问题
  • 【Flink】Flink提交流程
  • 哪种英特尔实感设备适合您?
  • C++11的四种强制类型转换
  • 分布式事务(4):两阶段提交协议与三阶段提交区别
  • React源码解析18(9)------ 实现多节点渲染【修改beginWork和completeWork】
  • 【GUI】基于开关李雅普诺夫函数的非线性系统稳定(Matlab代码实现)
  • Redis 缓存满了怎么办?
  • Grafana 安装配置教程
  • 【Linux】临界资源和临界区
  • 拓扑排序Topological sorting/DFS C++应用例题P1113 杂务
  • 基于jenkins构建生成CICD环境
  • 在线图片怎么转换成PDF?在线图片转换成PDF步骤介绍
  • Linux共享库基础及实例
  • java八股文面试[java基础]——final 关键字作用
  • Redis 分布式锁存在什么问题 ?如何解决 ?
  • n5173b是德科技keysight N5173B信号发生器
  • React源码解析18(10)------ 实现多节点的Diff算法
  • Linux指令篇!
  • Vue2学习笔记のVue组件化编程
  • 跨境电商儿童沙画办理EN71测试标准