有没有办法创建一个只运行 Python 的服务器,最精简的方式是什么?

2022-01-29 14:12:15 +08:00
 pugaizai

有几个服务器,目前都是用的 debian+python 的形式。 但实际上我仅仅只需要运行 python 。

想问一下有没有办法搭建一个纯 python 服务器,就像云函数一样。或者是最精简的 python 服务器是什么?

云函数其实挺好,就是有一些限制不像服务器上面方便。所以问问各位大神有没有更好的搭建方法。
9500 次点击
所在节点    Python
98 条回复
learningman
2022-01-29 16:40:35 +08:00
alpine 装某些带 C 库的包会出错,因为它是 musl ,和 glibc 不完全兼容。比如 numpy 。
还是推荐用 python-slim
newmlp
2022-01-29 16:43:11 +08:00
Alpine 可以试试看
Buges
2022-01-29 16:46:02 +08:00
Python 应该不能跑 bare metal ,那么最简环境应该是 init=/usr/bin/python3
zxCoder
2022-01-29 16:46:22 +08:00
@pugaizai 这个也是要操作系统的啊。。。
jstony
2022-01-29 16:46:55 +08:00
esp32+micropython ,够精简了。
ETiV
2022-01-29 16:57:46 +08:00
LZ 这个想法我之前也想过,Java Bytecode 运行在 JVM 上。
既然是 VM ,那有没有可能让 Bytecode 运行在某个实体机上面😂
ddzzhen
2022-01-29 17:05:46 +08:00
openwrt ,core-python ?
gengchun
2022-01-29 17:31:38 +08:00
我自己就是在生产上用的 docker alpine / k8s 跑 python 服务,折腾的那些时间换成工钱,用来在阿里云上买的那点系统空间的云盘,估计用个十年都是可以的。

所以我说,我折腾这个,就是自己造的伪需求,除了证明自己聪明外,提升一下自己的安全感以外,没有任何意义。

真要折腾这个,除了学术层面,唯一的可能就是嵌入式项目,或者航天航空有特殊需求。OP 大概率是自己看着几个 G 的虚拟机镜像觉得不顺眼而已。
wellsc
2022-01-29 17:37:59 +08:00
@adoal 说 python 不能自举我可不服,pypy 了解下
neoblackcap
2022-01-29 17:42:35 +08:00
@markgor edge 可以在 linux 上面跑的,你这个问题不成立的
adoal
2022-01-29 17:43:29 +08:00
@wellsc 白马非马,rpy 也算 py 吗?
neoblackcap
2022-01-29 17:45:10 +08:00
如果是为了管理以及部署方便,可以使用托管型的 k8s ,据我所知,各大云服务提供商都有提供。好不好用就不清楚,不过基本能满足你拉代码就能跑的程度。当然了,你还是要写一个 Dockerfile 用于构建能运行的镜像
dick20cm
2022-01-29 17:48:37 +08:00
Python 算法工程师现状:Py 秒天秒地秒空气,有了 Py 感觉连操作系统都多余了。过几年大概会有人问,如何不通电使用 Python
Rheinmetal
2022-01-29 17:50:01 +08:00
@gengchun op 嫌弃装 python 麻烦而已
用 docker 的话就有两个问题了
google 如何装 docker
如何用 docker
:doge:
anxn
2022-01-29 17:57:17 +08:00
python 有嵌入式版的 非常小
pugaizai
2022-01-29 18:09:12 +08:00
感谢各位,狂搜了两小时这些新名词,大概了解了,学到了很多。

像 os 一样运行的 micropython 、PiPyOS 考虑到性能和兼容性估计暂时还不够水平去尝试。

跨平台运行:MirageOS 貌似可以,介绍需要 OCaml 这个语言去编写。


精简版系统:有大神说的 buildroot 可以自己打包一个 python 精简版系统,这个估计算是最小的了。
或者使用 Alpine 这种比 debian 还小的系统

也可以用工具打包:python 转.so/exe 部署

还可以采用 docker 模式
底层 Linux 内核,选择 coreos|Photon OS|RancherOS 专用 /带有 docker 的操作系统
中间用 docker
最后选择 Alpine/Distroless/Busybox 这种比较小的容器
总体看来考虑到大小,兼容,效率,方便,安全,和可移植性

感觉就是我需要打电话而已,但是要安装一个“Android 系统”,而我的 “拨号.apk”只有 500kb

希望以后服务器,也能单独容器化吧,php 就是 php ,java 就是 java ,mysql 就是 mysql 。

不再是买了一个 20 吨的大卡车,只为能载一个人,而这个人只为了吹吹风。
shayuvpn0001
2022-01-29 18:18:35 +08:00
@gengchun 航空航天用 Python ? 怕是要到银河系以外去 catch 各种异常了。。。
ziseyinzi
2022-01-29 18:24:55 +08:00
如果只是不想维护系统,很多云服务商都有 PaaS 服务,提供 python 环境。
zhaiblog
2022-01-29 18:30:14 +08:00
@pugaizai 拨号.apk 只有 500k 的原因正是因为操作系统帮你封装了很多复杂操作,你想只要能拨号也不是做不到,需要抽离出很多东西,到最后体积也不会很小,并且花费的时间可能匹配不上你的收益。还不如直接装个系统再装个拨号.apk 。
marquina
2022-01-29 18:32:28 +08:00
@pugaizai #56 感觉就是我需要打电话而已,但是要安装一个“Android 系统”,而我的 “拨号.apk”只有 500kb

好奇问下,你的希望是手机不需要安装 Andorid 就能运行你的“拨号.apk”吗……

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

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

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

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

© 2021 V2EX