有一些pywinauto自动化的程序,要运行在服务器上
但pywinauto经常涉及到点击、输入,读取屏幕界面的一些操作
而这些操作,必须让测试界面显示在屏幕上,不然会报错
而我又不想另外再租一套云服务器,太贵了
有好的办法能同时在一台电脑上,同时运行几个pywinauto程序吗
不要太复杂的办法哈
引用 皆我百晓生 小程序回复内容作答:
在一台电脑上同时运行多个pywinauto程序,可以尝试以下几种方法:
使用多个虚拟桌面:在Windows 10及更高版本中,可以使用虚拟桌面功能,将每个pywinauto程序放在不同的桌面上运行。这样每个程序就处于独立的环境中,不会相互干扰。你可以在任务栏中找到虚拟桌面按钮,打开多个桌面,并在每个桌面中运行一个pywinauto程序。
使用不同的用户账户:可以为每个pywinauto程序创建不同的用户账户,并在各个账户中运行程序。这样每个程序都会运行在独立的用户会话中,互相之间不会有冲突。
使用虚拟机或Docker容器:可以在一台物理机上创建多个虚拟机或Docker容器,每个虚拟机或容器中运行一个pywinauto程序。这样每个程序都运行在独立的环境中,相互之间不会有干扰。
使用多个Python进程:如果你的pywinauto程序独立运行,不需要与其他程序进行交互,可以通过启动多个Python进程同时运行多个程序。你可以使用命令行或脚本来启动多个进程,并将每个进程的pywinauto程序启动起来。
这些方法都是相对简单的,可以根据你的实际需求选择其中一种。注意在使用这些方法时,要确保你的电脑性能足够强大,能够同时支持多个程序的运行。
windows还是liunx服务器?
如果是程序的话,你有没有源码?自行打包的时候,用不同的端口即可。这样就可以运行多个程序。
不同目录部署程序应该可以解决,相当于多线程执行
参考结合GPT4.0、文心一言,如有帮助,恭请采纳。
要在同一个电脑上同时运行多个 Pywinauto 程序,我提供一个思路是安装并配置多个虚拟桌面环境(Virtual Desktop),在每个虚拟桌面上打开一个 Pywinauto 程序。通过配置每个虚拟桌面的设置,确保它们具有足够的屏幕空间来显示程序界面。但这种方法会占用较多的系统资源,需要你的电脑配置要好
直接开两个进程跑就行
援引讯飞星火:
您可以使用Python的多线程或多进程来同时运行多个pywinauto程序。这样,每个程序都将在自己的线程或进程中运行,从而不会相互干扰。您可以使用Python的threading或multiprocessing模块来实现这一点。
这里有一个例子,展示了如何使用threading模块来同时运行两个pywinauto程序:
import threading
from pywinauto import Application
def run_app(app_path):
app = Application().start(app_path)
# do something with the app
if __name__ == '__main__':
t1 = threading.Thread(target=run_app, args=('path_to_app1',))
t2 = threading.Thread(target=run_app, args=('path_to_app2',))
t1.start()
t2.start()
t1.join()
t2.join()
建议使用docker 来实现
参考gpt:
结合自己分析给你如下建议:
pywinauto是一个用于自动化Windows应用程序的界面操作的Python库,它支持鼠标、键盘操作,以及对窗口控件、对话框和消息框的操作。要使用pywinauto,需要先安装它,然后导入必要的模块,然后启动或连接到目标应用程序,然后获取窗口对象和控件对象,然后对它们进行操作。
如果要在服务器上运行pywinauto的程序,有以下几种可能的方法:
方法一:使用远程桌面连接到服务器,并保持连接状态,让测试界面显示在屏幕上。这种方法比较简单,但是可能会占用服务器的资源和带宽。
方法二:使用虚拟机或容器来运行pywinauto的程序,并设置自动登录和开机启动。这种方法比较复杂,但是可以实现多个pywinauto程序同时运行,而且不影响服务器的其他功能。
方法三:使用无头模式或模拟桌面来运行pywinauto的程序,并设置定时任务或服务来触发。这种方法比较高级,但是需要对pywinauto进行一些修改和配置,以适应无头模式或模拟桌面的环境。
您可以使用操作系统提供的虚拟桌面功能,将不同的Pywinauto程序运行在不同的虚拟桌面上,以避免它们干扰彼此。这可以在一些Windows版本中找到,例如 Windows 10。
打开任务视图: 使用快捷键 Win + Tab 打开任务视图,您可以看到当前打开的应用程序以及"新建桌面"选项。
新建虚拟桌面: 点击"新建桌面"选项,将会创建一个新的虚拟桌面。
切换桌面: 在任务视图中,您可以切换到不同的虚拟桌面,然后在每个虚拟桌面上运行一个Pywinauto程序。
一些常见的设置方法:
使用多个用户账户:
使用虚拟化技术:
使用远程桌面会话:
使用 Pywinauto 的多线程或多进程:
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
一台服务器部署两个python程序_在同一台服务器上运行多个Python程序(Ubuntu server 12.04)...
可以参考下
结合GPT给出回答如下请题主参考
在同一台云服务器上同时运行2个pywinauto程序,可以采用以下方法:
使用多个线程或者多进程运行程序,每个程序在不同的线程或进程中执行,可以避免互相干扰。
使用不同的用户账号登录到同一台服务器上运行程序。通过使用不同的用户账号,可以保证在不同的会话中运行程序,避免互相冲突。
使用远程桌面连接到云服务器,可以实现远程控制服务器桌面,使得测试界面可以显示在屏幕上。
需要注意的是,在云服务器上运行pywinauto程序时,建议使用headless模式,即在不显示界面的情况下运行程序,避免图形界面产生的一些问题。同时,也需要确保云服务器的配置足够强大,能够支持多个pywinauto程序同时运行。
创建虚拟机/Docker,虚拟机/Docker里安装多个windows系统,在各个windows里部署安装你的进程即可,这样就会有多个桌面系统来跑了
可以尝试使用虚拟化技术,例如 VirtualBox 或 VMware,在这些虚拟环境中运行你的 Pywinauto 程序。这样,你就可以在同一台电脑上同时运行多个程序,而每个程序都有自己的独立的操作系统环境。
参考gpt
在同一台电脑上同时运行多个pywinauto程序,可以尝试以下几种方法:
使用多个用户账户:创建多个用户账户,每个用户账户运行一个pywinauto程序。这样每个程序都会在独立的用户会话中运行,不会相互干扰。
使用虚拟化技术:使用虚拟机或容器技术,如VirtualBox、Docker等,在同一台电脑上创建多个虚拟环境,每个环境中运行一个pywinauto程序。这样每个程序都会在独立的虚拟环境中运行,互不干扰。
使用多个进程:在同一用户账户下,使用多个进程来同时运行多个pywinauto程序。可以使用Python的multiprocessing
模块来创建和管理多个进程,每个进程运行一个pywinauto程序。注意需要确保每个程序使用不同的窗口句柄或进程ID来进行操作,以避免干扰。
使用远程桌面连接:如果你有多台电脑,可以通过远程桌面连接将不同的pywinauto程序分别运行在不同的电脑上。这样每个程序都会在独立的电脑上运行,互不干扰。
用虚拟环境运行
装个虚拟机运行
参考结合AI智能、文心一言等综合回答,若有帮助,恭请采纳。
有一个可能的解决办法是使用“虚拟桌面”功能。虚拟桌面是一种将单个操作系统窗口管理器扩展到多个独立的桌面的功能。在Windows 10中,可以使用Task View来打开虚拟桌面。在虚拟桌面中,您可以打开多个测试界面,每个实例运行一个pywinauto程序,这些程序会在该虚拟桌面中视为前台应用程序。
您可以按照以下步骤在Windows 10中启用虚拟桌面功能:
点击任务栏上的“任务视图”按钮。
点击“新建桌面”按钮。
在新的虚拟桌面中打开测试界面。
在第一个桌面中打开其他测试界面,并运行pywinauto程序。
在虚拟桌面之间切换,以便在每个桌面中查看和操作测试界面。
注意:在虚拟桌面之间切换时,您需要打开和关闭测试界面,在每个虚拟桌面中进行必要的操作。这可能需要一些额外的时间和精力,但是这是在单个计算机上运行多个pywinauto程序的简单方法。
如果您对容器技术熟悉,可以使用Docker等工具创建多个容器,并在每个容器中运行一个pywinauto程序