Python 脚本直接的 import 管理

2023-03-18 22:29:40 +08:00
 CaptainD

最近接手一项工作,管理某些 python 脚本,脚本越来越复杂,很难管理,想要优化下

脚本特点

现在的做法

问题:原来的程序很简单,可能只有寥寥几个文件,这样没有啥大问题,现在越来越复杂,很难使用

918 次点击
所在节点    问与答
2 条回复
NoOneNoBody
2023-03-19 01:35:45 +08:00
分两种情况
1.跨项目的公共代码打包成 package
这个多留参数,变化宽松一些
2.仅单一项目的公共代码,打包成一个公共目录或定点子目录
这个如果前述 1.已经存在,但某些参数固定,可以写成一个闭包,或者继承并固定参数为新的类,供项目引入
ClericPy
2023-03-19 07:42:52 +08:00
1. 定时启动和手动调用, 以及分别查看运行记录和日志
1.1 airflow, azkaban, systemd
1.2 比较次的情况, APS Scheduler, sched, supervisor+plan
1.3 不推荐 crontab

2. 共享模块问题
2.1 微服务(HTTP/RPC) 最能做好一致性和统一升级以及审计等能力
2.2 云原生 Serverless 之类也不错, 打通 gateway 或者其他 invoke 方式也行
2.3 私有 pypi 或者私有 git 用 pip 安装
2.4 通过挂共享盘路径方式存放共享模块, 可以用统一的 venv, 也可以 sys.path 的方式, 包括 pip install -t /share_path/xxx 的方式带上依赖

3. 解决上面脚本地狱的正经办法还是重构, 看成本是否能够接受吧
3.1 领域驱动设计, 从头划分边界与共性
3.2 服务化改造, 只通过 HTTP 或其他远程调用的方案, 起码把手动启动的改成远程调用
3.3 调度模块按 1 里面的改造成所见即所得的模块, 而各种配置信息用专业的配置中心服务不要硬编码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/925178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX