您的位置:首页 >Python项目Ubuntu如何部署
发布于2026-07-30 阅读(0)
扫一扫,手机访问
Python项目在Ubuntu上部署,其实没那么玄乎。从环境准备到Nginx反向袋里,背后就是一套标准流程。今天咱们就把这活儿拆开,一步步说清楚——保证你照着弄就能跑起来。

先把系统包列表刷新一下,顺手装上Python3和pip——这是Python运行环境的老本行,缺一不可:
sudo apt update
sudo apt install python3 python3-pip python3-venv -y
装完别急着走,验证一下版本,确保是Python 3.6以上:
python3 --version
# 确认Python版本(建议3.6+)
pip3 --version # 确认pip版本
虚拟环境这东西,就像给每个项目搭个独立的小房间,依赖互不干扰,干净又清爽。用venv模块搞一个:
cd /path/to/your_project
# 进入项目目录
python3 -m venv myenv # 创建虚拟环境(myenv为环境名称,可自定义)
source myenv/bin/activate # 激活虚拟环境(激活后命令行前缀显示环境名)
⚠️ 注意:接下来所有操作,都要在这个虚拟环境里进行,免得依赖冲突搞出幺蛾子。
项目依赖通常记录在requirements.txt里,有了它,一行命令就能批量安装:
pip install -r requirements.txt
# 安装所有依赖
如果项目还没生成这个文件,也别慌,在虚拟环境里跑一下就能导出:
pip freeze > requirements.txt
# 导出当前环境依赖到文件
项目类型不同,启动方式也不一样。普通脚本就直接执行主文件:
python main.py
如果是Web应用(Flask或Django),开发测试阶段可以这么干:
flask run
# 或 python app.py(若app.py中有Flask实例)
python manage.py runserver
生产环境可不能用内置服务器,得换Gunicorn这种高性能的WSGI服务器,扛得住并发:
pip install gunicorn
# 安装Gunicorn
以Flask应用为例(假设入口是app.py中的app对象),启动命令如下:
gunicorn -w 4 -b 127.0.0.1:8000 app:app
# -w指定工作进程数,-b指定绑定地址
更稳妥的做法是把它注册成Systemd服务,这样系统重启后应用还能自动启动:
sudo nano /etc/systemd/system/myapp.service
# 创建服务文件
写入以下内容,记得替换路径和用户名:
[Unit]
Description=Gunicorn Server for My Python App
After=network.target
[Service]
User=ubuntu
# 替换为你的系统用户
Group=www-data
WorkingDirectory=/path/to/your_project
ExecStart=/path/to/your_project/myenv/bin/gunicorn --workers 4 --bind unix:/run/myapp.sock app:app
Restart=always
[Install]
WantedBy=multi-user.target
保存后启动服务并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
# 设置开机自启
Nginx负责把外部请求转给Gunicorn,顺便还能处理静态文件,是生产环境的标准配置:
sudo apt install nginx -y
# 安装Nginx
创建或修改Nginx配置文件:
sudo nano /etc/nginx/sites-a vailable/myapp
写入以下内容,把域名或IP替换成你自己的:
server {
listen 80;
server_name your_domain_or_ip;
# 替换为你的域名或服务器IP
location / {
include proxy_params;
proxy_pass http://unix:/run/myapp.sock;
# 转发到Gunicorn的Unix socket
}
# 可选:配置静态文件目录(需在Django/Flask中设置STATIC_ROOT)
location /static/ {
alias /path/to/your_project/static/;
# 替换为静态文件目录
}
}
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-a vailable/myapp /etc/nginx/sites-enabled/
# 创建符号链接
sudo nginx -t
# 测试配置语法
sudo systemctl restart nginx
# 重启Nginx
如果服务器启用了UFW防火墙,记得放行HTTP和HTTPS端口:
sudo ufw allow 'Nginx Full'
# 允许HTTP和HTTPS
sudo ufw enable
# 启用防火墙(若未启用)
打开浏览器,访问http://your_domain_or_ip,如果看到你的应用页面,那恭喜你,部署成功了!
sudo systemctl status nginxsudo systemctl status myappjournalctl -u myapp -f(实时日志)或/var/log/nginx/error.log(Nginx错误日志)sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com
# 替换为你的域名
workers数量,通常设置为CPU核心数的2-4倍。logrotate),避免日志文件撑爆磁盘。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8