Ubuntu 下安装flask

2026-05-19 11:34 技术

flask

ubuntu 下安装 flask


升级 python3

在 Ubuntu 系统中升级 Python 版本需要极其谨慎。 Ubuntu 的许多核心系统工具(如 apt、adduser、update-manager 等)都深度依赖系统自带的默认 Python 版本。 如果直接替换或强行修改系统默认的 /usr/bin/python3 软链接,极大概率会导致这些系统工具崩溃,甚至造成系统无法启动。 因此,绝对不要删除或覆盖系统自带的 Python。 最安全、最推荐的做法是让新版本与系统旧版本共存,并通过虚拟环境来使用新版 Python。

ubuntu 22.04 默认装的是 3.10 版本,现在升级到 3.12 版本

1.安装时去掉已废弃的包

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
# 再次提醒:Python 3.12 已移除 distutils,不要安装 python3.12-distutils
sudo apt install python3.12 python3.12-venv python3.12-dev

2.严禁全局 pip 安装包: 在本地开发时,永远不要直接运行 pip3.12 install flask。 这会把包安装到系统级目录,不仅容易污染环境,还可能在升级系统时被 apt 误删。 避坑提醒 以后在本地开发 Flask 或 ROS2 项目时,创建虚拟环境永远不要加 sudo。 正确姿势:

# 1. 在你的项目根目录创建专属虚拟环境
python3.12 -m venv .venv

# 2. 激活环境(激活后终端前缀会出现 (.venv))
source .venv/bin/activate

# 3. 此时再安装 Flask 和 Gunicorn,它们只会存在于 .venv 文件夹内
pip install flask gunicorn

# 4.使用 setuptools 替代 distutils
# distutils 移除后,其功能已由 setuptools 接管。
# 在安装完 Python 3.12 后,直接通过 pip 安装 setuptools 即可完美解决依赖问题。
pip install --upgrade setuptools

记住一个铁律: 只要看到了 source .venv/bin/activate 激活了环境,后面的所有 pip 命令都严禁加 sudo。

跑 flask 项目测试

在项目根目录创建一个最简单的 app.py 测试一下:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Flask 环境搭建成功!"

if __name__ == '__main__':
    app.run(debug=True)

然后在终端执行 flask run。 如果看到类似 Running on http://127.0.0.1:5000 的提示,打开浏览器访问该地址,就能看到你的成果了。


注意事项

你当前的 Python 环境中,colcon-core(ROS2 的核心构建工具)明确要求 setuptools 的版本必须小于 80, 但你刚刚安装的 setuptools 82.0.1 超出了这个限制,导致了依赖冲突。 至于提示中的 Not uninstalling setuptools at /usr/lib/python3/dist-packages, 是因为你当前激活了虚拟环境,而系统级的 setuptools 位于虚拟环境之外。pip 为了保护 Ubuntu 系统底层的稳定性, 拒绝触碰系统目录下的包,这是正常且安全的行为,完全不用担心。 要解决这个冲突,只需要在你的虚拟环境内将 setuptools 降级到 colcon-core 兼容的范围内即可。 请确保你的终端提示符前已经出现了虚拟环境的名称(如 (venv)),然后执行以下命令:

# 强制降级 setuptools 到 colcon-core 要求的兼容版本(推荐 69.0.0)
pip install setuptools==69.0.0 --force-reinstall