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

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

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

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

云函数其实挺好,就是有一些限制不像服务器上面方便。所以问问各位大神有没有更好的搭建方法。
9476 次点击
所在节点    Python
98 条回复
44670
2022-01-29 15:12:48 +08:00
buildroot ,只选择 python3
adoal
2022-01-29 15:13:38 +08:00
@also24 可以理解为把 Grub 作为一个丐版的操作系统……
also24
2022-01-29 15:14:56 +08:00
需要补充说明的是,可能有些人会认为,这并不是 “正常工作” ,所以不能算数。

但是从原理,或者说结构上来说,这确实说明了 Python 是具备甩开操作系统,独立运行的能力的,而非很多人认为的如同空中楼阁一般从原理上就不可能。

实际上,有很多基于相应原理的具体应用,比如:
19 楼提到的 MicroPython https://micropython.org/
类似的 PiPyOS https://github.com/rreilink/PiPyOS

包括其它语言,也是有类似操作的,例如:
Go 的 AtmanOS https://atmanos.org/
Java 的 Java On Everything https://github.com/joekoolade/JOE
whileFalse
2022-01-29 15:15:24 +08:00
@Privileges 没有操作系统哪儿来的 docker
also24
2022-01-29 15:17:33 +08:00
@adoal #22
只是这个演示借助了 Grub 而已,不代表这个操作一定要借助 Grub ,毕竟这只是个演示。

我主要是想表达,楼里有不少人认为传统意义上的操作系统不可缺少,这个想法是不正确的。
codehz
2022-01-29 15:18:54 +08:00
为了安全性的话,可以考虑用 firecracker ,通过轻量级虚拟机运行订制内核(
不过 rootfs 还是得靠自己提供
huangsen365
2022-01-29 15:23:37 +08:00
coreos 自带 docker ,如果非要钻牛角尖的,可以用 google 的 app engine ,或者 azure 的 app service
Privileges
2022-01-29 15:27:32 +08:00
@whileFalse 草 想只运行 Python 又不要操作系统
pugaizai
2022-01-29 15:30:30 +08:00
果然有大神,本人确实不是科班出身。
最大的问题是因为,每次配置新服务器,都要通过各种百度、google 一顿操作。到最后,仅仅只是为了安装一个 20 多 Mb 的 pyhton3 而已。

就面临几个问题。
比如 debian 默认版本 python2 ,自带 python3 版本也很低。就需要很多操作才能换成高版本 python3 ,而且 python2 各种程序还在后台持续运行不能删除(不一定对)。
另外安装这些 debian 操作系统,防火墙及其他各种漏洞,知识有效不甚了解。操作系统很多无用的程序占用资源不说,出现漏洞被挂了马也难以判断和监测。
arischow
2022-01-29 15:42:56 +08:00
看情况,一般 slim 起步
liuxu
2022-01-29 15:49:58 +08:00
emm....楼主可能需要的是类似 digitalocean 的应用服务器,可以直接拉 github 的 python 项目直接跑,google 和新浪也有,不知道下线没
adoal
2022-01-29 15:53:48 +08:00
@pugaizai 所以我说这是一个 X-Y 问题,你需要做的是学习操作系统运维知识,而不是找一个没有操作系统就能运行的 Python……事实上不论是 MicroPython 还是其它几个 toy 级的无操作系统 Python 实现都不是你需要的东西。

另外,Debian 11 里带的 Python 3 是 3.9 版,不算低了吧。
adoal
2022-01-29 15:54:28 +08:00
所以问问题最好是直接讲清楚原始需求,而不是自己先猜测一个解决办法,再问这个解决办法如何实现。
youngce
2022-01-29 15:56:52 +08:00
@pugaizai #29 根据你的描述 docker 就好了
XiLingHost
2022-01-29 16:21:35 +08:00
如果是不想配置服务器,可以考虑试试 VMware 家的 Photon OS ,然后 tdnf install docker ,用 docker 来管理环境
luckyrayyy
2022-01-29 16:27:48 +08:00
感觉还是云函数比较适合你…底层都不用管了
duzhor
2022-01-29 16:31:08 +08:00
LXC 或者 docker 可以做到尽量小,python 底层依赖操作系统内核
wonderblank
2022-01-29 16:34:37 +08:00
楼主的想法之前我也有过,上面的回复基本上全部在点子上。

首先,我们允许的程序基本上都依赖于操作系统,操作系统和硬件给我们管理内存,磁盘,中断等。脱离了操作系统,应用程序很难跑起来,因为没有环境。

那么,有没有一种操作系统,这个操作系统就是我们写的程序,不依赖于任何其他的依赖?

有的,关键词是 "Unikernel"

楼主可以看看 MirageOS https://mirage.io/
dzdh
2022-01-29 16:38:15 +08:00
@pugaizai 同感。比如 mysql 。有没有 mysql==OS 的东西 不要有任何一丢丢非 mysql 必须要的其他软件依赖环境

time 留着 什么 sh bash build 包 一个都不要有
krcalc
2022-01-29 16:38:31 +08:00
docker + distroless 镜像 + python 应该不能更精简了

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

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

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

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

© 2021 V2EX