Ubuntu Python项目如何部署与运行
导读:Ubuntu Python项目部署与运行完整流程 1. 系统准备:安装Python与pip Ubuntu 20.04及以上版本默认安装Python 3.8+,但需确认版本并安装pip(Python包管理工具): # 检查Python 3版本...
Ubuntu Python项目部署与运行完整流程
1. 系统准备:安装Python与pip
Ubuntu 20.04及以上版本默认安装Python 3.8+,但需确认版本并安装pip(Python包管理工具):
# 检查Python 3版本
python3 --version
# 检查pip 3版本
pip3 --version
# 若未安装pip,通过apt安装
sudo apt update &
&
sudo apt install python3-pip -y
2. 环境隔离:创建并激活虚拟环境
虚拟环境是避免项目依赖冲突的关键,推荐使用Python自带的venv
模块:
# 进入项目目录(示例:~/python_projects/my_project)
mkdir -p ~/python_projects/my_project &
&
cd ~/python_projects/my_project
# 创建虚拟环境(生成venv文件夹)
python3 -m venv venv
# 激活虚拟环境(终端提示符前显示(venv))
source venv/bin/activate
# 退出虚拟环境(后续步骤完成后执行)
# deactivate
3. 依赖管理:安装项目所需包
3.1 生成/使用requirements.txt
requirements.txt
是项目依赖的清单,需在开发环境中生成:
# 在开发环境中生成requirements.txt(包含所有依赖及版本)
pip freeze >
requirements.txt
部署时,通过以下命令快速安装所有依赖:
pip install -r requirements.txt
3.2 高级依赖管理(可选)
- Poetry:更现代化的工具,支持依赖解析与打包:
# 安装Poetry curl -sSL https://install.python-poetry.org | python3 - # 初始化项目(生成pyproject.toml) poetry init # 添加依赖(如flask) poetry add flask # 安装所有依赖(自动创建虚拟环境) poetry install
4. 运行Python项目
根据项目类型选择运行方式:
4.1 普通Python脚本
直接执行脚本文件:
python your_script.py
4.2 Web应用(Flask/Django)
- Flask:开发模式下运行(需设置
FLASK_APP
环境变量):export FLASK_APP=app.py # 替换为你的主文件 flask run --host=0.0.0.0 # 允许外部访问
- Django:启动开发服务器:
python manage.py runserver 0.0.0.0:8000
5. 生产环境优化:配置Gunicorn与Nginx
开发环境运行后,需用Gunicorn(WSGI服务器)替代Flask/Django内置服务器,提升性能;用Nginx作反向代理,处理静态文件与负载均衡。
5.1 安装Gunicorn
在虚拟环境中安装Gunicorn:
pip install gunicorn
5.2 运行Gunicorn
以4个工作进程启动应用(假设应用入口为app:app
,即Flask/Django的主文件与应用实例):
gunicorn -w 4 -b 127.0.0.1:8000 app:app
5.3 配置Nginx
- 创建Nginx配置文件(示例:
/etc/nginx/sites-available/myproject
):server { listen 80; server_name your_domain_or_ip; # 替换为域名或IP location / { proxy_pass http://127.0.0.1:8000; # 转发到Gunicorn proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # 可选:处理静态文件(需在Django/Flask中配置STATIC_ROOT) location /static/ { alias /path/to/your/static/files/; } }
- 启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled sudo nginx -t # 测试配置语法 sudo systemctl restart nginx
6. 开机自启:创建Systemd服务
确保应用在服务器重启后自动运行,创建Systemd服务文件:
sudo nano /etc/systemd/system/myproject.service
写入以下内容(替换路径与用户):
[Unit]
Description=My Python Project
After=network.target
[Service]
User=your_username # 替换为你的用户名
WorkingDirectory=/path/to/your/project # 替换为项目路径
ExecStart=/path/to/your/project/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
Restart=always # 崩溃后自动重启
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl start myproject.service
sudo systemctl enable myproject.service # 开机自启
# 检查服务状态
sudo systemctl status myproject.service
7. 可选:使用Docker容器化部署
Docker可打包应用及依赖,确保环境一致性:
7.1 创建Dockerfile
在项目根目录创建Dockerfile
:
# 使用官方Python镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制项目文件
COPY . /app
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露端口
EXPOSE 80
# 运行Gunicorn
CMD ["gunicorn", "-w 4", "-b 0.0.0.0:80", "app:app"]
7.2 构建与运行Docker镜像
# 构建镜像(标签为myproject:latest)
docker build -t myproject .
# 运行容器(映射80端口到主机)
docker run -d -p 80:80 --name myproject_container myproject
通过以上步骤,即可在Ubuntu上完成Python项目的部署与运行,涵盖从环境配置到生产优化的完整流程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Python项目如何部署与运行
本文地址: https://pptw.com/jishu/733465.html