在 Ubuntu 上优化 Python,通常可以从 系统环境、Python 版本、依赖管理、运行时性能、代码层面、并发与部署 等多个维度来做。下面给你一套比较实用、循序渐进的优化方案。
Ubuntu 自带 Python 往往较旧。
python3 --version
建议使用 Python 3.10+ 或 3.12(性能提升明显)。
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.12 python3.12-venv python3.12-dev
避免系统 Python 污染,提高可维护性。
python3 -m venv venv
source venv/bin/activate
✅ 优点:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package
永久配置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip freeze > requirements.txt
或使用更现代的:
pip install pip-tools
pip-compile
| 解释器 | 说明 |
|---|---|
| CPython | 默认 |
| PyPy | 对循环、计算密集型程序快 2–10 倍 |
| Python 3.12+ | 本身已优化 |
sudo apt install pypy3
pypy3 your_script.py
✅ 适合:
❌ 不适合:
python -O your_script.py
✅ 快:
list, dict, set, tuple
❌ 慢:
自定义对象、嵌套循环
❌ 差:
a = a + b
✅ 好:
a += b
def gen():
for i in range(1000000):
yield i
✅ 省内存、速度快
pip install numpy pandas
✅ 底层是 C,性能极高
| 场景 | 方案 |
|---|---|
| IO 密集 | asyncio / threading |
| CPU 密集 | multiprocessing |
| 网络请求 | asyncio + aiohttp |
import asyncio
async def task():
await asyncio.sleep(1)
asyncio.run(task())
from multiprocessing import Pool
with Pool(4) as p:
p.map(func, data)
# 临时提高文件描述符限制
ulimit -n 65535
mount -t tmpfs tmpfs /tmp
适合临时数据、缓存
pip install gunicorn uvicorn
gunicorn app:app -w 4 -k uvicorn.workers.UvicornWorker
✅ 提高并发能力
pip install numba
from numba import njit
@njit
def f(x):
return x * 2
pip install py-spy
py-spy top --pid <pid>
或:
python -m cProfile script.py
✅ 通用 Python 项目
✅ 计算密集型
✅ Web 服务
你可以告诉我:
我可以直接给你 针对你项目的优化方案 + 示例代码。