在云服务器上做 Python 开发,选镜像的核心逻辑其实就一条:稳定、兼容、少折腾。
别被那些花里胡哨的“一键部署环境”或者各种定制版 Linux 忽悠了。对于绝大多数生产级或严肃的开发场景,我的建议非常明确:
首选:Ubuntu 22.04 LTS (或 20.04 LTS)
次选:Debian 11/12
特定场景:Alibaba Cloud Linux 3 (如果你用阿里云且追求极致内核优化)
下面我把为什么这么选,以及不同选择的坑和优势给你掰开揉碎了说。
一、 为什么 Ubuntu 是默认答案?
在国内云厂商(阿里云、腾讯云、华为云等)的控制台里,Ubuntu 往往不是排第一的,通常 CentOS 或 Windows Server 会占前排位置(虽然 CentOS 8 已经停止维护,但惯性还在)。但你必须逆着来,选 Ubuntu。
-
Python 生态的第一公民
Python 的世界是围绕 Debian/Ubuntu 构建的。从pip安装依赖,到编译 C 扩展库(比如 numpy, pandas, pillow),Ubuntu 的包管理器和预编译二进制兼容性是最好的。很多开源项目文档里写的apt-get install python3-dev libffi-dev在 Ubuntu 上是一步到位的,在其他系统上你可能得手动去搞环境变量或者找奇怪的源。 -
LTS(长期支持)版本的意义
一定要选带 LTS 后缀的版本。22.04 是目前的主流,支持周期长,社区资源多。做开发最怕的就是环境崩了,你翻遍全网找不到解决方案。Ubuntu LTS 的问题,StackOverflow 上几乎都有现成答案。 -
Docker 和 K8s 的原生友好
现在谁还纯裸机跑 Python?大部分都是 Docker 容器化。Ubuntu 是 Docker 官方主要测试的平台之一,内核模块加载、cgroup 权限等问题最少。
二、 为什么不推荐 CentOS/RHEL?
我知道很多人习惯 CentOS,因为以前它是企业标配。但现在情况变了:
- 生命周期终结:CentOS 8 已停服,CentOS Stream 是滚动更新,不稳定,不适合生产环境。CentOS 7 更是强弩之末,新版本的 Python 库(特别是需要较新 glibc 的)在上面编译极其痛苦。
- EPEL 源的滞后:你想装个新版的 Python 3.10+,你得自己配 SCL 源或者源码编译。而在 Ubuntu 上,
apt install python3.10可能就在仓库里等着你呢。 - 安全性与合规:RHEL 系的安全策略更严格,SELinux 配置不当会导致 Python 脚本权限报错,新手调试起来能崩溃。
例外情况:如果你的公司强制要求 RHEL 系(比如某些国企、银行项目),那就选 Rocky Linux 9 或 AlmaLinux 9,它们是 CentOS 的合法替代品,比 CentOS Stream 稳得多。
三、 国产云厂商的特供镜像:Alibaba Cloud Linux / TencentOS
这里要单独提一下国内云厂商的自研系统。
- Alibaba Cloud Linux 3:基于 CentOS 8 重构,内核深度优化过,对 ECS 的虚拟化性能有提升。如果你用的是阿里云,且你的应用对网络吞吐、CPU 调度敏感,这个系统是不错的。但它本质还是 RPM 系,Python 开发体验略逊于 Ubuntu,需要额外注意兼容层。
- TencentOS Server:腾讯云的类似产品,同样主打性能优化。
建议:除非你有明确的运维团队要求统一使用这些特供镜像以便监控集成,否则个人开发者或小团队优先选标准 Ubuntu。通用性 > 微小的性能收益。
四、 避坑指南:Windows Server?
除非你的 Python 项目重度依赖 Windows 专属库(如某些 COM 组件、老旧的 .NET 互操作),否则不要在云服务器上用 Windows Server 做 Python 开发。
- 资源占用高:GUI 界面或后台服务吃内存。
- 路径问题:
C:UsersAdministrator...这种路径在命令行里处理起来很麻烦。 - 工具链割裂:WSL2 虽然好,但在云服务器上运行 WSL2 增加了复杂度,不如直接原生 Linux。
五、 实际选择建议(按场景)
| 场景 | 推荐镜像 | 理由 |
|---|---|---|
| Web 开发 (Django/FastAPI/Flask) | Ubuntu 22.04 LTS | 社区支持最好,Nginx + Gunicorn/uWSGI 配置文档最多,出错容易搜到解法。 |
| 数据科学/AI/机器学习 | Ubuntu 22.04 LTS | CUDA 驱动、PyTorch/TensorFlow 预编译包对 Ubuntu 支持最完善。 |
| 自动化运维/脚本工具 | Ubuntu 22.04 LTS | Ansible、SaltStack 等主流工具对 Debian 系支持最好。 |
| 企业内部统一规范 | Rocky Linux 9 / Alibaba Cloud Linux 3 | 遵循公司 IT 战略,便于集中管理和安全审计。 |
| 学习/练手 | Ubuntu 22.04 LTS | 网上教程 90% 是基于 Ubuntu 的,跟着做不踩雷。 |
六、 初始化后的关键一步
不管选哪个镜像,拿到服务器后,第一件事不是装 Python,而是:
-
换源:把默认的国外源换成国内的(清华源、阿里源、中科大源)。这能极大提速
pip install和apt update的速度。 -
安装基础构建工具:
# Ubuntu 示例 sudo apt update sudo apt install -y build-essential libpq-dev libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git这是为了让你以后编译任何 C 扩展都不报错。
-
考虑使用 pyenv 或 conda:
不要在系统自带 Python 上乱搞。用pyenv管理多版本 Python,或者用conda管理环境。这样即使你把系统搞乱了,重装镜像也能快速恢复。
总结
闭眼选 Ubuntu 22.04 LTS。
它是最安全、最省心、资料最多、坑最少的那个选项。等你在这个系统上跑通了你的项目,再去考虑要不要迁移到其他系统也不迟。记住,开发效率比那点玄学的“系统底层优化”重要得多。
云技术博客