首页主机资讯Ubuntu中Python项目怎么部署

Ubuntu中Python项目怎么部署

时间2025-10-14 10:34:03发布访客分类主机资讯浏览918
导读:Ubuntu环境下Python项目部署全流程 1. 准备基础环境 在部署前需确保系统具备Python运行环境和必要的工具: 安装Python及pip:Ubuntu 20.04及以上版本默认安装Python 3.8+,通过以下命令确认及安装...

Ubuntu环境下Python项目部署全流程

1. 准备基础环境

在部署前需确保系统具备Python运行环境和必要的工具:

  • 安装Python及pip:Ubuntu 20.04及以上版本默认安装Python 3.8+,通过以下命令确认及安装pip:
    sudo apt update
    sudo apt install python3 python3-pip python3-venv -y
    
  • 验证安装
    python3 --version  # 确认Python版本(如3.8.10)
    pip3 --version     # 确认pip版本(如21.1.2)
    

2. 创建并激活虚拟环境

使用虚拟环境隔离项目依赖,避免全局污染:

  • 创建虚拟环境:在项目根目录下执行:
    python3 -m venv myenv  # 创建名为myenv的虚拟环境
    
  • 激活虚拟环境
    source myenv/bin/activate  # 激活后终端提示符前缀变为(myenv)
    

3. 安装项目依赖

通过requirements.txt文件批量安装项目所需依赖(需提前在本地生成该文件):

cd /path/to/your_project  # 进入项目根目录
pip install -r requirements.txt  # 安装所有依赖

4. 运行项目

根据项目类型选择运行方式:

  • 普通Python脚本:直接执行入口文件:
    python main.py
    
  • Flask应用:若入口文件为app.py且包含app实例,可使用:
    flask run --host=0.0.0.0 --port=5000  # 需设置FLASK_APP=app.py环境变量
    
  • Django应用:执行开发服务器:
    python manage.py runserver 0.0.0.0:8000
    

5. 配置生产级WSGI服务器(可选但推荐)

开发服务器不适合生产环境,需使用Gunicorn(同步框架)或Uvicorn(异步框架)提升性能:

  • 安装Gunicorn
    pip install gunicorn
    
  • 运行Gunicorn:以Flask应用为例(入口文件app.pyapp为实例):
    gunicorn -w 4 -b 127.0.0.1:8000 app:app  # 4个工作进程,绑定本地8000端口
    
  • 安装Uvicorn(适用于FastAPI/Starlette):
    pip install uvicorn
    uvicorn app:app --host 0.0.0.0 --port 8000  # 异步框架推荐
    

6. 配置Nginx反向代理(可选但推荐)

Nginx作为前端服务器,负责处理静态文件、负载均衡及SSL终止,提升应用性能和安全性:

  • 安装Nginx
    sudo apt install nginx -y
    
  • 配置Nginx:创建新的配置文件(如/etc/nginx/sites-available/myapp),内容如下:
    server {
        
        listen 80;
        
        server_name your_domain_or_ip;
      # 替换为域名或IP
        location / {
        
            proxy_pass http://127.0.0.1:8000;
          # 转发到Gunicorn/Uvicorn端口
            proxy_set_header Host $host;
        
            proxy_set_header X-Real-IP $remote_addr;
        
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
            proxy_set_header X-Forwarded-Proto $scheme;
    
        }
    
        location /static/ {
          # 处理静态文件(可选)
            alias /path/to/your/static/files/;
    
        }
    
    }
        
    
  • 启用配置
    sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
    sudo nginx -t  # 测试配置语法
    sudo systemctl reload nginx  # 重新加载Nginx
    

7. 设置开机自启(可选但推荐)

通过systemd服务确保应用在系统重启后自动启动:

  • 创建systemd服务文件
    sudo nano /etc/systemd/system/myapp.service
    
  • 添加以下内容(以Gunicorn为例):
    [Unit]
    Description=Gunicorn Server for My Python App
    After=network.target
    
    [Service]
    User=your_username  # 替换为实际用户名
    Group=www-data    # 通常使用www-data组
    WorkingDirectory=/path/to/your/project
    Environment="PATH=/path/to/your/project/myenv/bin"  # 虚拟环境路径
    ExecStart=/path/to/your/project/myenv/bin/gunicorn --workers 3 --bind unix:/run/myapp.sock -m eventlet myproject.wsgi  # Django示例
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动并启用服务
    sudo systemctl daemon-reload
    sudo systemctl start myapp.service
    sudo systemctl enable myapp.service  # 开机自启
    sudo systemctl status myapp.service  # 检查状态
    

8. 配置防火墙(可选)

若服务器启用了UFW防火墙,需允许HTTP(80端口)和应用端口(如8000)通过:

sudo ufw allow 80/tcp  # 允许HTTP
sudo ufw allow 8000/tcp  # 允许应用端口
sudo ufw enable  # 启用防火墙

9. 测试部署

  • 本地测试:在浏览器访问http://your_domain_or_ip,确认应用是否正常响应。
  • 查看日志:若出现问题,通过以下命令查看实时日志:
    tail -f /var/log/nginx/error.log  # Nginx错误日志
    journalctl -u myapp.service -f  # systemd服务日志
    

以上步骤覆盖了Ubuntu环境下Python项目部署的核心流程,可根据项目类型(如Flask/Django/FastAPI)和需求调整配置(如SSL证书、数据库连接等)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu中Python项目怎么部署
本文地址: https://pptw.com/jishu/725643.html
Ubuntu PHP-FPM的性能调优技巧有哪些 如何使用PHP-FPM进行负载均衡

游客 回复需填写必要信息