我给你整理一套最简单、最实用、新手零门槛的 python 程序部署到 ubuntu 系统的完整流程,覆盖普通脚本/桌面程序和web 程序(flask/django),所有命令直接复制就能用!
一、前期准备:ubuntu 基础环境配置
ubuntu 系统默认自带 python3,我们只需要安装依赖工具即可:
- 登录 ubuntu 服务器/电脑,打开终端
- 执行命令更新系统、安装必备工具
bash # 更新软件源(必做) sudo apt update && sudo apt upgrade -y # 安装 python3 依赖、虚拟环境工具(ubuntu20.04/22.04/24.04通用) sudo apt install python3-pip python3-venv -y
- 验证安装成功
bash python3 --version # 查看python版本 pip3 --version # 查看pip版本
二、上传你的 python 程序到 ubuntu
推荐2 种新手最常用的上传方式:
方式1:图形化工具(最简单,首选)
- 电脑下载 filezilla
- 连接 ubuntu:
- 主机:ubuntu 的 ip 地址
- 用户名:ubuntu 登录用户名
- 密码:ubuntu 登录密码
- 端口:22
- 直接把本地 python 代码文件夹拖拽上传到 ubuntu(推荐上传到 /home/用户名/ 目录下)
方式2:终端命令上传(无图形界面)
本地电脑终端执行(把文件传到 ubuntu 的 home 目录):
bash # 格式:scp -r 本地程序文件夹路径 ubuntu用户名@ubuntuip:/home/用户名/ scp -r /本地/我的python程序 ubuntu@192.168.1.100:/home/ubuntu/
三、核心步骤:配置程序运行环境
1. 进入程序目录
假设程序上传到了 /home/ubuntu/my_python_app
bash cd my_python_app
2. 创建虚拟环境(必做!隔离依赖,避免冲突)
bash # 创建虚拟环境(文件夹名env,可自定义) python3 -m venv env # 激活虚拟环境(激活后终端前缀会变成 (env)) source env/bin/activate
3. 安装程序依赖
如果你的项目有 requirements.txt(推荐):
bash # 安装所有依赖 pip install -r requirements.txt
手动生成依赖文件(本地开发时执行,上传到ubuntu):
bash # 本地电脑终端执行,生成依赖清单 pip freeze > requirements.txt
四、运行 python 程序
分两种场景:临时前台运行、后台持久运行(关闭终端不退出)
场景1:测试运行(前台,关闭终端程序就停)
bash # 普通python脚本 python3 main.py # web程序(flask/django) python3 app.py # flask python3 manage.py runserver 0.0.0.0:5000 # django
测试无报错后,按 ctrl + c 停止,再配置后台运行
场景2:后台持久运行(生产环境必用)
方案1:nohup(最简单,临时部署)
适合临时运行,命令执行后关闭终端也不会停:
bash # 普通脚本 nohup python3 main.py > app.log 2>&1 & # web程序(指定端口) nohup python3 app.py --host=0.0.0.0 --port=5000 > app.log 2>&1 &
- 日志会保存到 app.log 文件
- 查看运行状态:ps -ef | grep python3
- 停止程序:kill -9 进程id
方案2:systemd(ubuntu 自带,生产级!开机自启)
最稳定的方式,推荐长期部署使用:
- 创建服务配置文件
bash sudo nano /etc/systemd/system/myapp.service
- 粘贴以下配置(修改路径为你自己的程序路径)
toml [unit] description=my python app after=network.target [service] user=ubuntu workingdirectory=/home/ubuntu/my_python_app # 程序目录 execstart=/home/ubuntu/my_python_app/env/bin/python3 main.py # 虚拟环境+启动命令 restart=always # 程序崩溃自动重启 [install] wantedby=multi-user.target
- 保存退出:按 ctrl+o → 回车 → ctrl+x
- 启动服务并设置开机自启
bash # 刷新配置 sudo systemctl daemon-reload # 启动程序 sudo systemctl start myapp # 设置开机自启 sudo systemctl enable myapp # 查看程序运行状态 sudo systemctl status myapp
- 常用命令
bash sudo systemctl stop myapp # 停止 sudo systemctl restart myapp # 重启
五、web 程序额外配置(flask/django)
如果你的程序是 web 服务,需要开放端口才能访问:
- 开启 ubuntu 防火墙
bash sudo ufw allow 5000 # 开放你的程序端口 sudo ufw enable sudo ufw status
- 本地浏览器访问:http://ubuntu的ip:5000
六、常见问题排查
- 权限不足:命令前加 sudo
- 依赖安装失败:确认虚拟环境已激活(前缀有 (env))
- 端口被占用:sudo lsof -i:5000 查看占用进程,kill 掉
- 程序报错:查看日志 cat app.log 或 journalctl -u myapp
总结
- 核心流程:配置环境 → 上传程序 → 虚拟环境装依赖 → 后台运行
- 新手首选:filezilla 上传 + systemd 开机自启
- 所有命令适配 ubuntu 全版本,直接复制使用即可
以上就是将python程序部署到ubuntu系统的完整流程的详细内容,更多关于python程序在ubuntu部署的资料请关注代码网其它相关文章!
发表评论