商城首页欢迎来到中国正版软件门户

您的位置:首页 >Python项目Ubuntu如何部署

Python项目Ubuntu如何部署

  发布于2026-07-30 阅读(0)

扫一扫,手机访问

Python项目在Ubuntu上部署,其实没那么玄乎。从环境准备到Nginx反向袋里,背后就是一套标准流程。今天咱们就把这活儿拆开,一步步说清楚——保证你照着弄就能跑起来。

Python项目Ubuntu如何部署

1. 准备基础环境

先把系统包列表刷新一下,顺手装上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版本

2. 创建并激活虚拟环境

虚拟环境这东西,就像给每个项目搭个独立的小房间,依赖互不干扰,干净又清爽。用venv模块搞一个:

cd /path/to/your_project
# 进入项目目录
python3 -m venv myenv # 创建虚拟环境(myenv为环境名称,可自定义)
source myenv/bin/activate # 激活虚拟环境(激活后命令行前缀显示环境名)

⚠️ 注意:接下来所有操作,都要在这个虚拟环境里进行,免得依赖冲突搞出幺蛾子。

3. 安装项目依赖

项目依赖通常记录在requirements.txt里,有了它,一行命令就能批量安装:

pip install -r requirements.txt
# 安装所有依赖

如果项目还没生成这个文件,也别慌,在虚拟环境里跑一下就能导出:

pip freeze > requirements.txt
# 导出当前环境依赖到文件

4. 运行项目

项目类型不同,启动方式也不一样。普通脚本就直接执行主文件:

python main.py

如果是Web应用(Flask或Django),开发测试阶段可以这么干:

  • Flask:启动开发服务器(仅用于测试,生产环境别用这个)
flask run
# 或 python app.py(若app.py中有Flask实例)
python manage.py runserver

5. 配置生产级WSGI服务器

生产环境可不能用内置服务器,得换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
# 设置开机自启

6. 配置Nginx反向代 理

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

7. 配置防火墙(可选但推荐)

如果服务器启用了UFW防火墙,记得放行HTTP和HTTPS端口:

sudo ufw allow 'Nginx Full'
# 允许HTTP和HTTPS
sudo ufw enable
# 启用防火墙(若未启用)

8. 验证部署

打开浏览器,访问http://your_domain_or_ip,如果看到你的应用页面,那恭喜你,部署成功了!

  • 检查Nginx状态:sudo systemctl status nginx
  • 检查Gunicorn状态:sudo systemctl status myapp
  • 查看应用日志:journalctl -u myapp -f(实时日志)或/var/log/nginx/error.log(Nginx错误日志)

可选优化步骤

  • SSL证书:用Let's Encrypt免费获取SSL证书,配置HTTPS:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com
# 替换为你的域名
  • 性能调优:根据服务器CPU核心数调整Gunicorn的workers数量,通常设置为CPU核心数的2-4倍。
  • 日志管理:配置日志轮转(比如用logrotate),避免日志文件撑爆磁盘。
本文转载于:https://www.yisu.com/ask/76345181.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注