在 Ubuntu 上 Python 运行慢,通常不是“系统问题”,而是解释器、依赖、代码或环境配置导致的。下面按见效从快到慢给你一套可操作的优化方案。
不要盲目优化,先定位瓶颈:
# 查看运行时间
time python script.py
# CPU / 内存占用
htop
# 代码级分析
pip install py-spy
py-spy top -- python script.py
# 函数级分析
python -m cProfile -s cumtime script.py
常见慢的原因:
pyenv 安装 CPython 最新版Ubuntu 自带 Python 往往偏旧。
sudo apt install -y build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev
curl https://pyenv.run | bash
pyenv install 3.12.3
pyenv global 3.12.3
✅ Python 3.11+ 比 3.8 快 20–60%
sudo apt install pypy3
pypy3 script.py
✅ 循环密集代码可快 3–5 倍
❌ 不支持部分 C 扩展
pip install numba
from numba import njit
@njit
def f(x):
return x * x
sudo apt install linux-tools-common
sudo cpupower frequency-set -g performance
mmapopen/closepandas.read_parquet 而非 CSVpip install --upgrade pip
pip install numpy pandas
✅ 确保是 manylinux wheel,不是源码编译
import numpy as np
np.show_config()
确认用了:
from concurrent.futures import ProcessPoolExecutor
import asyncio
multiprocessingjoblibray❌ 不要在 Docker 里用 ubuntu:latest + apt python
✅ 用:
FROM python:3.12-slim
✅ 升级 Python 到 3.12
✅ 用 pyenv
✅ pip 用 wheel
✅ 算法热点用 numba / cython
✅ CPU 设为 performance
✅ 并发用 multiprocessing
如果你愿意,可以:
我可以直接帮你给出针对性优化方案。