Linux Crontab运行PyAutoGUI的问题

在Linux Crontab下运行PyAutoGUI跑不起来,查看日志发现是因为报错 `KeyError: ‘DISPLAY’`,也就是找不到显示设备。

用户正常登录了桌面,也没有锁定屏幕,PyAutoGui还是没有找到显示设备,

其实在使用Crontab时,会遇到很多正常操作时不会遇到的问题,比如PHP/Python脚本不能常驻运行,`gsettings`命令执行无效等,包括PyAutoGui不能正常运行,这是因为Crontab是一个受限的环境,需要额外给它传递环境变量才可以。

阿里云自动创建ECS并分配公网IP

阿里云可以通过API自动化管理ECS实例,包括创建、启动、停止、释放、分配IP等操作,对于自动化的运维来说非常方便。

官方文档中给出了通过Python SDK创建和批量创建ECS的示例代码,虽有点小问题,但基本上可以用。

首先是硬盘类型的选择,`cloud_ssd`基本不可用了,会报错,改为企业级固态,即`cloud_essd`,代码如下

Python下载并解压zip文件

Python下载并解压zip文件,这在不同的机器上做机器学习和深度学习时是很有用的。

在本地创建好数据集后,上传到公共空间上,自己和其他人就可以在别的机器上直接下载并解压使用,省时省力。

代码如下:

Mac意向设备

本人主要是PHP开发,偶尔Python和NodeJS,本地用Docker环境,在学习Kubernetes时需要使用3台(最少2台)Linux虚拟机,偶尔需要用Windows虚拟机来运行独占软件,对GPU需求不高,学习使用的PyTorch还不用上GPU。

现办公用的是Mac mini 2018款,i5-8500B 6核CPU,内存升到32G,硬盘256G。

心仪Mac的M1系列芯片,对于我日常的工作兼容性也能满足,意向设备主要是下面几款。

APP自动化测试方案对比

APP自动化测试方案对比,包括平台支持,语言支持,HTTP API等。

通过HTTP调用API意味着可以同时控制多部手机执行相同的操作。

批量分发即无需电脑作为控制端,而直接在手机上安装运行,目前看只有Android上的AccessiBility Service可以实现。而Appium小范围几十上百台内部设备也是可以实现的。

Python中使用Celery任务队列

Python中使用Celery队列。

Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。

消息中间件:Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis, MongoDB, Amazon SQS,CouchDB, SQLAlchemy ,Django ORM, IronMQ。推荐使用RabbitMQ、Redis作为消息队列。

豫ICP备19001387号-1