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

news2024/9/28 13:21:42

需求:在 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 paramiko

def save_changes():
    new_values = [f"{key}={value.get()}" for key, value in entries.items()]
    new_content = '\n'.join(new_values)
    
    try:
        # Create a SSH client
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname, username=username, password=password)
        
        # Write new content to the remote file
        with 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] = value
    
    ssh.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_entry
    row += 1

save_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.coloradmin.cn/o/920892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pm4py使用指南(非机翻)

目录 1. 日志数据读取及预处理&#xff08;1&#xff09;查看case和event数量&#xff08;2&#xff09;查看起始事件和结束事件&#xff08;3&#xff09;时间戳格式的问题 2. 日志数据过滤3. 流程发现4. 模型转化5. 模型可视化 1. 日志数据读取及预处理 通过 pandas库 读取c…

PyCharm搭建Pytorch环境

&#x1f482; 个人主页:风间琉璃&#x1f91f; 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 本文是在anaconda配置好pytorch坏境下&#xff0c;使用PyCharm搭建Pytorch环境。…

vue2 element 踩坑爬坑

动态增减表单项 这个其实官网有demo&#xff0c;但是自己也调试了好久&#xff0c;记录下&#xff0c;具体写法自己查看文档&#xff1a;https://element.eleme.cn/#/zh-CN/component/form 关键地方在于key&#xff0c;新增数组时&#xff0c;要在数据里增加个key&#xff0c;…

免费插件集-illustrator插件-Ai插件-制卡专用分层分色

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.示例6.总结 1.介绍 本文介绍一款免费插件&#xff0c;加强illustrator使用人员工作效率&#xff0c;进行制卡专用分层分色。首先从下载网址下载这款插件 https://download.csdn.net/download/m0_67316550/878…

pandas(一):read_csv解决第一列Unnamed问题

先直接给答案&#xff1a;configdata pd.read_csv(savepath, encodingutf-8, index_col0)。 然后我们展开来说明&#xff1a; 首先下面这个图片是原始csv数据 1、第一列问题 上述图片可以看到&#xff0c;因为csv文件自带第一列序号&#xff0c;如果我们直接用pd.read_csv读…

【Spring】Spring循环依赖(超重要!!)

目录 什么是循环依赖问题 循环依赖具体是怎么解决的 具体的解决步骤&#xff1a; 通俗实例&#xff1a; 严谨的循环依赖解决图例 为什么使用的是三级缓存&#xff0c;二级缓存不够用吗&#xff1f; 什么是循环依赖问题 Spring的循环依赖是指在Bean之间存在相互依赖关…

MinDoc:针对IT团队的文档、笔记系统

作为一名IT从业者&#xff0c;无论是在公司团队中&#xff0c;还是在平时自己写一些笔记、博客等文档&#xff0c;我都习惯使用markdown来进行书写。在使用过许多支持markdown语法的系统或软件&#xff08;如Typora、未知、我来、思源、觅道等&#xff09;后&#xff0c;我总觉…

pytestx重新定义接口框架设计

概览 脚手架&#xff1a; 目录&#xff1a; 用例代码&#xff1a; """ 测试登录到下单流程&#xff0c;需要先启动后端服务 """test_data {"查询SKU": {"skuName": "电子书"},"添加购物车": {"sk…

异步I/O优化Python代理程序性能

作为一名爬虫程序员&#xff0c;你是否曾经遇到过需要处理大量网络请求的情况&#xff1f;你是否想要提高你的Python代理程序的性能&#xff0c;让它更快、更高效&#xff1f;别担心&#xff0c;我来给你分享一些关于异步I/O如何优化Python代理程序性能的实用知识。 首先&…

云计算技术应用专业实训室建设方案

一、 云计算技术应用系统概述 云计算技术是一种基于互联网的计算模式&#xff0c;通过将计算资源&#xff08;如服务器、存储、数据库、网络、软件等&#xff09;提供为一种服务&#xff0c;使用户能够按需获取和使用这些资源&#xff0c;而无需拥有和管理实际的物理设备。云计…

使用RAMMap+PoolMon分析Windows内存使用异常问题

1 RAMMap和PoolMon工具简介 RAMMap和PoolMon都是微软Sysinternals的工具&#xff0c;前者可以从使用类型、页列表、进程、文件、优先级&#xff0c;以及物理地址来检查内存的使用情况&#xff0c;但是无法检查尚未提交和分页的进程内存使用情况&#xff1b;后者可以是作为RAMM…

使用haproxy搭建web架构

haproxy HAProxy是一个免费的负载均衡软件&#xff0c;可以运行于大部分主流的Linux操作系统上。 HAProxy提供了可以在七层和四层两种负载均衡能力&#xff0c;它可以提供高可用性、负载均衡、及基于TCP和HTTP应用的代理。适用于负载大的Web站点&#xff0c;在运行在硬件上可…

使用 SQLStudio 进行数据库管理并通过 Docker Compose 进行部署

在现代软件开发中&#xff0c;数据库管理是一个至关重要的环节。SQLStudio 是一个强大的工具&#xff0c;可以帮助开发人员轻松管理数据库&#xff0c;现在改名成SQLynx&#xff0c;我们用的是旧的镜像&#xff0c;本文还是用SQLStudio这个名称。同时&#xff0c;使用 Docker C…

Qt双击某一文件通过自己实现的程序打开,并加载文件显示

双击启动 简述方法一方法二注意 简述 在Windows系统中&#xff0c;双击某类扩展名的文件&#xff0c;通过自己实现的程序打开文件&#xff0c;并正确加载及显示文件。有两种方式可以到达这个目的。 对于系统不知道的扩展名的文件&#xff0c;第一次打开时&#xff0c;需要自行…

ModaHub魔搭社区:WinPlan企业经营垂直大模型数据建模(二)

目录 维度模版管理 录入维度数据 经营指标 创建经营指标 经营指标管理 维度模版管理 创建维度后,可在维度库的左侧栏展示全部启用中的维度,你也可以再次编辑维度模版;如不再需要该维度,可停用,停用后可在停用管理里重新启用或删除。 1)停用:维度停用后,不会出现在…

3个方法学会:恢复指定人微信聊天记录

和朋友吵架后一怒之下把她微信删除了&#xff0c;和好之后又想把聊天记录恢复回来。网上很多方法都是直接恢复所有的微信聊天记录&#xff0c;我想问问&#xff0c;可以只恢复这个朋友的聊天记录吗&#xff1f;有什么方法吗&#xff1f; 朋友之间有一些小摩擦、小争吵是很正常的…

MyCAT命令行监控

9066端口 &#xff0c;用mysql命令行连接 Mysql –utest –ptest –P9066 show help 可显示所有相关管理命令 显示后端物理库连接信息&#xff0c;包括当前连接数&#xff0c;端口 Show backend Show connection 显示当前前端客户端连接情况&#xff0c;已经网络流量信息、…

JavaFX:根据控件内容显示tooltip

如题。当控件为空&#xff0c;没有内容时显示tooltip&#xff0c;反之不显示。示例如下&#xff1a; package ch06;import javafx.application.Application; import javafx.application.Platform; import javafx.beans.value.ObservableValue; import javafx.geometry.VPos; i…

如何将下载的安装包导入PyCharm

1. 下载安装包 这里以pyke为例。下载好之后解压缩&#xff0c;然后放入/Lib/site-packages/pyke-1.1.1 2. 打开PyCharm的终端进行安装 python setup.py install 3. 安装好之后导入即可使用 import pyke

Linux搭建SSLVpn

安装http、ssl服务 编辑http配置文件 修改http的136行&#xff0c;276行以及990行 1、136行将监听端口注释 2、276行和990行修改为自己的域名和要访问的端口 修改http文档最后那部分 新添ssl配置信息&#xff0c;将端口修改为443&#xff08;截图错了server.key应该放在/etc/…