有没有 Python sandbox 或者 container,比 docker 更轻量级

2023-09-15 14:08:09 +08:00
 gosky
目前服务都是 go 写的,go 服务跑在 docker 上
一些工作需要 python 执行
优先考虑到 go 里面跑一个 python 解释器,但一来没发现很好的解析器,二来依赖也是个问题
所以想到,有没有类似 sandbox 或者 container 的技术,可以把 python 代码和依赖,都打包起来。每次 go 需要执行 python 任何了,就执行这个 sandbox 或者 container
这样,还可以附带解决不同 python 任务的依赖
1538 次点击
所在节点    Python
7 条回复
dayeye2006199
2023-09-15 14:29:36 +08:00
python 打包成 webassembly 然后 go 里面弄个 runtime 去调用? https://github.com/wasmerio/wasmer-go

但这个肯定有些依赖支持的不好,特别是那类科学运算的
ryanking8215
2023-09-15 14:31:25 +08:00
做成胖容器,golang 的容器安装 python ,基础容器一般是 alpine 或者 debian ,都支持
Lychee0
2023-09-15 14:45:57 +08:00
如果不涉及 dl 这种依赖 torch 容器镜像的工作,直接 pyinstaller 打包一下就好,然后在最终 alpine 镜像里面补下依赖咯
打包困难就参考楼上的方案,python 官方不推荐 alpine ,可以试试看 python:3.xx-slim-bookworm
6167
2023-09-15 14:50:57 +08:00
用 go 发布 celery 异步任务?
neoblackcap
2023-09-15 23:07:02 +08:00
建议简单写一个 python web 服务,直接通过网络接口来调用 python 服务。
julyclyde
2023-09-16 13:14:00 +08:00
这其实是两件事啊
一般所谓容器包含文件系统发行、运行环境 cgroups+namespace 两个东西
而你想要的是其实是个 python venv
gosky
2023-09-18 09:59:28 +08:00
@julyclyde 也不知道该叫啥 哈哈

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

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

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

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

© 2021 V2EX