Ubuntu 下 Python 环境配置与实战开发指南
在 Ubuntu 系统下搭建 Python 开发环境的完整流程。内容包括安装 Python 3 及 pip、配置国内源、创建虚拟环境。推荐了 VS Code 和 PyCharm 两款 IDE 的安装配置方法。通过 matplotlib 数据可视化、Flask Web 服务、APScheduler 定时任务三个实战案例演示核心技能。最后总结了常见问题如虚拟环境激活、绘图显示、防火墙设置等的解决方案,并提出了容器化部署、自动化运维等进阶方向。

在 Ubuntu 系统下搭建 Python 开发环境的完整流程。内容包括安装 Python 3 及 pip、配置国内源、创建虚拟环境。推荐了 VS Code 和 PyCharm 两款 IDE 的安装配置方法。通过 matplotlib 数据可视化、Flask Web 服务、APScheduler 定时任务三个实战案例演示核心技能。最后总结了常见问题如虚拟环境激活、绘图显示、防火墙设置等的解决方案,并提出了容器化部署、自动化运维等进阶方向。

Ubuntu 作为最流行的 Linux 发行版之一,凭借其稳定的性能、丰富的软件生态和开源特性,成为 Python 开发的理想选择。无论是数据分析、Web 开发还是人工智能领域,Ubuntu 都能为 Python 提供高效的运行环境。本文将从基础环境配置出发,逐步深入到 Python 开发的核心场景,帮助开发者在 Ubuntu 系统中快速搭建稳定、高效的 Python 开发环境,并通过实战案例掌握关键开发技能。
Ubuntu 系统默认会预装 Python,但可能同时存在 Python 2.x(部分旧版本系统)和 Python 3.x 两个版本。由于 Python 2.x 已停止官方支持,建议优先使用 Python 3.x 进行开发。
查看系统预装 Python 版本:
打开终端(快捷键:Ctrl + Alt + T),执行以下命令:
# 查看 Python 2 版本(若存在)
python --version
# 查看 Python 3 版本
python3 --version
若输出类似 Python 3.10.12 的信息,说明系统已预装 Python 3;若提示 "command not found",则需手动安装。
Ubuntu 官方软件源中包含 Python 3,可通过 apt 包管理器快速安装或升级。
# 更新软件源索引
sudo apt update
# 安装 Python 3 及依赖
sudo apt install -y python3 python3-pip python3-dev
python3:Python 3 的核心执行程序python3-pip:Python 3 的包管理工具(用于安装第三方库)python3-dev:Python 3 的开发依赖(编译 C 扩展库时需用到)pip 是 Python 生态中最常用的包管理器,建议安装后立即升级到最新版本:
python3 -m pip install --upgrade pip
默认情况下,pip 从国外的 PyPI 源下载包,速度较慢。可配置国内镜像源(如阿里云、豆瓣源)提升下载速度:
mkdir -p ~/.config/pip
nano ~/.config/pip/pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
按 Ctrl + O 保存,Ctrl + X 退出编辑器。
在实际开发中,不同项目可能依赖不同版本的 Python 库,直接在系统全局环境安装会导致版本冲突。Python 虚拟环境可为每个项目创建独立的依赖环境,避免冲突。
# 安装 virtualenv(传统工具)
pip3 install virtualenv
# 或安装 venv(Python 3.3+ 内置,无需额外安装)
以创建一个名为 my_project_env 的虚拟环境为例:
# 1. 创建项目目录(示例:~/python_projects/my_first_project)
mkdir -p ~/python_projects/my_first_project
cd ~/python_projects/my_first_project
# 2. 创建虚拟环境(在当前目录下生成 venv 文件夹)
python3 -m venv venv
# 3. 激活虚拟环境
source venv/bin/activate
激活成功后,终端提示符前会显示 (venv),表示当前处于虚拟环境中。此时使用 python 和 pip 命令默认指向虚拟环境中的 Python 3,无需再用 python3 和 pip3。
deactivate
对于快速测试代码片段或执行简单脚本,Ubuntu 终端是最便捷的选择:
python script.pypython(支持实时输入代码并执行,输入 exit() 退出)VS Code 是微软推出的开源 IDE,支持 Python 语法高亮、代码补全、调试等功能,通过插件可扩展丰富的开发能力。
安装与配置步骤:
Ctrl + Shift + X),搜索 "Python",安装微软官方的 "Python" 插件(作者:Microsoft)。Ctrl + Shift + P,输入 "Python: Select Interpreter";~/python_projects/my_first_project/venv/bin/python)。方法 2:终端命令安装(推荐,获取最新版本):
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
sudo apt update
sudo apt install -y code
PyCharm 是 JetBrains 专为 Python 开发设计的 IDE,分为社区版(免费开源)和专业版(付费,支持 Web 开发、数据库等高级功能)。
安装步骤:
.tar.gz 包下载。解压并安装:
# 假设下载到 ~/Downloads 目录,版本为 2024.1.1
cd ~/Downloads
tar -xzf pycharm-community-2024.1.1.tar.gz
sudo mv pycharm-community-2024.1.1 /opt/
# 启动 PyCharm
/opt/pycharm-community-2024.1.1/bin/pycharm.sh
matplotlib 是 Python 最常用的绘图库,可在 Ubuntu 下快速实现数据可视化。
# 确保已激活虚拟环境
source ~/python_projects/my_first_project/venv/bin/activate
pip install matplotlib
创建 plot_demo.py 文件,内容如下:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据(x 轴:0-10 的 100 个点,y 轴:正弦函数)
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建图形
plt.figure(figsize=(8, 4))
plt.plot(x, y, label='sin(x)', color='blue', linewidth=2)
# 添加标题和标签
plt.title('Sine Function Plot (Ubuntu + Python)', fontsize=14)
plt.xlabel('X Value', fontsize=12)
plt.ylabel('Y Value (sin(x))', fontsize=12)
# 添加图例和网格
plt.legend()
plt.grid(True, alpha=0.3)
# 显示图形(Ubuntu 下需确保已安装图形支持,默认已包含)
plt.show()
python plot_demo.py
运行后将弹出一个窗口,显示正弦函数的曲线图。
Flask 是轻量级的 Python Web 框架,适合快速开发小型 Web 应用。
# 在虚拟环境中执行
pip install flask
创建 app.py 文件,内容如下:
from flask import Flask
# 初始化 Flask 应用
app = Flask(__name__)
# 定义路由(根路径)
@app.route('/')
def hello_ubuntu_python():
return "<h1>Hello! This is a Flask Web App on Ubuntu + Python</h1>"
# 定义带参数的路由
@app.route('/user/<name>')
def greet_user(name):
return f"<h2>Welcome, {name}! You're using Flask on Ubuntu.</h2>"
if __name__ == '__main__':
# 启动服务(host='0.0.0.0'允许外部设备访问,默认端口 5000)
app.run(host='0.0.0.0', port=5000, debug=True)
python app.py
http://localhost:5000 或 http://127.0.0.1:5000;http://[Ubuntu 主机 IP]:5000(Ubuntu 主机 IP 可通过 ip addr 命令查看,如 192.168.1.100);http://localhost:5000/user/Alice,将显示欢迎 Alice 的页面。在 Ubuntu 下,可通过 APScheduler 实现 Python 脚本的定时执行(类似 Linux 的 crontab,但更灵活)。
pip install apscheduler
创建 scheduler_demo.py 文件,内容如下:
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
# 定义要定时执行的函数
def print_current_time():
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"Current time: {current_time}")
# 初始化调度器
scheduler = BlockingScheduler()
# 添加定时任务(每 5 秒执行一次)
scheduler.add_job(print_current_time, 'interval', seconds=5)
# 添加每日固定时间任务(例如每天 14:30 执行)
# scheduler.add_job(print_current_time, 'cron', hour=14, minute=30)
print("Scheduler started. Press Ctrl+C to stop.")
try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass
python scheduler_demo.py
终端将每 5 秒输出一次当前时间,按 Ctrl + C 停止调度器。
python 命令仍指向系统 Python原因:虚拟环境配置异常,或 python 命令被系统别名覆盖。
解决方案:
检查虚拟环境中 python 的路径:
which python
# 正常应输出:~/python_projects/my_first_project/venv/bin/python
原因:Ubuntu 服务器版(无图形界面)或通过 SSH 远程连接时,matplotlib 无法找到显示设备。 解决方案:
import matplotlib
matplotlib.use('Agg') # 使用非交互式后端
import matplotlib.pyplot as plt
plt.savefig('sin_plot.png') # 保存到当前目录
原因:
127.0.0.1(仅本地可访问);解决方案:
host='0.0.0.0'(如案例 2 中的 app.run(host='0.0.0.0'));若需永久开放,执行:
sudo ufw allow 5000/tcp
开放 5000 端口(临时开放,重启后失效):
sudo ufw allow 5000
本文从 Ubuntu 环境下 Python 的基础配置、开发工具选型到实战案例,覆盖了 Python 开发的核心场景。通过虚拟环境隔离项目依赖、选择合适的 IDE 提升开发效率、解决常见问题,可帮助开发者在 Ubuntu 系统中高效进行 Python 开发。
systemd 服务,将 Python 脚本注册为系统服务(实现开机自启、异常重启);cProfile 分析 Python 脚本性能瓶颈,通过 Cython 或 Numba 加速计算密集型任务;
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online