当前位置: 首页 > news >正文

Linux系统部署python程序

Linux系统部署python程序

  • 1.简介
  • 2.linux安装python环境
  • 3.启动服务

1.简介

本次用到的FastAPI,Uvicorn,Gunicorn

FastAPI:FastAPI 是一个现代、快速(高性能)的 web 框架,用于构建 APIs,基于 Python 3.6+ 类型提示。主要特性包括:

易于使用: 设计易于使用和学习,尽量减少开发时间。
简洁: 最小化代码复杂性,尽量减少开发者眼中的 bug。
基于标准: 基于(并完全兼容)开放标准:OpenAPI(以前称为 Swagger)和 JSON Schema。

Uvicorn:Uvicorn 是一个基于 asyncio 的 ASGI 服务器,用于部署 Python 的异步 web 应用,它的目标是成为 Python 异步服务器网关接口(ASGI)规范的最快实现之一。Uvicorn 支持 HTTP/1.1 和 WebSockets,并且可以配合像 Starlette 和 FastAPI 这样的框架使用。

Gunicorn:Gunicorn ‘Green Unicorn’ 是一个 Python WSGI HTTP 服务器,用于 UNIX。它是 Ruby 的 Unicorn 服务器的 Python 移植版。Gunicorn 的工作模式是预先分叉出多个进程来处理请求,这使得它在处理并发请求时具有较高的效率。然而,由于它基于同步的 WSGI,因此在处理 WebSockets 或长连接时可能不如 Uvicorn 高效。

2.linux安装python环境

miniconda安装包地址

1、下载安装包Miniconda3-latest-Linux-x86_64.sh

2、把安装包上传到服务器上,某个目录下

3、执行安装程序安装

bash Miniconda3-latest-Linux-x86_64.sh

4、一路yes;并且可以设置miniconda安装目录。
5、设置安装目录

Miniconda3 will now be installed into this location:
/root/miniconda3- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below[/root/miniconda3] >>>
/root/miniconda_soft

6.一路yes并初始化
7.更新服务器的配置内容

source ~/.bashrc

8.验证miniconda安装

conda -V
conda -version

9.设置 conda 镜像源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

10.设置 pip 镜像

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set install.trusted-host mirrors.aliyun.com

11.创建python环境

conda create --prefix=/usr/local/conda_envirment/ms_iam_space python==3.10.14

进入激活环境

conda activate /usr/local/conda_envirment/ms_iam_space

3.启动服务

配置 Gunicorn 和 Uvicorn Workers
安装 Gunicorn,并配置多进程支持:
在python环境中下载下面的框架依赖

pip install gunicorn uvicorn fastapi
gunicorn app:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000

在项目代码的根目录下

pip install -r requirement.txt 

下载完依赖

访问 http://<你的服务器IP>:8000,确认应用正常,Gunicorn正常运行。
-w 4:指定 4 个工作进程。
-k uvicorn.workers.UvicornWorker:使用 Uvicorn Worker。
app:app,第一个app是python文件名,即main文件,第二个是FastAPI的实例化的对象名,fastapi创建的app名称。

gunicorn 后台启动,Gunicorn以守护进程模式运行:,不占用shell;

gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 -D \--timeout 300  \--access-logfile access.log \--error-logfile error.log

查看gunicorn 启动的线程/进程

ps aux | grep "gunicorn main:app"
http://www.lryc.cn/news/626151.html

相关文章:

  • SConscript 脚本入门教程
  • InfoNES模拟器HarmonyOS移植指南
  • Redis缓存加速测试数据交互:从前缀键清理到前沿性能革命
  • 图形化监控用数据动态刷新方法
  • Transformer入门到精通(附高清文档)
  • 内网后渗透攻击--隐藏通信隧道技术(压缩、上传,下载)
  • 常见的软件图片缩放,算法如何选择?
  • 【开源工具】基于社会工程学的智能密码字典生成器开发(附完整源码)
  • 字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent
  • 洛谷 P2834 纸币问题 3-普及-
  • Flink原理与实践 · 第三章总结
  • 第5.6节:awk字符串运算
  • 【驱动】RK3576:桌面操作系统基本概念
  • L2TP虚拟局域网
  • 快速傅里叶变换:数字信号处理的基石算法
  • Orange的运维学习日记--47.Ansible进阶之异步处理
  • 数据库-MYSQL配置下载
  • go链路追踪
  • 微算法科技(NASDAQ: MLGO)研究利用PBFT中的动态视图变换机制,实现区块链系统高效运转
  • 不同语言的并发模型对比:Go、Java与Python
  • Go高效复用对象:sync.Pool详解
  • 机器学习中的「损失函数」:模型优化的核心标尺
  • 决策树算法详解
  • 【完整源码+数据集+部署教程】鳄梨表面缺陷检测图像分割系统源码和数据集:改进yolo11-MLCA
  • QT聊天项目DAY19
  • 广东省省考备考(第八十一天8.19)——资料分析、数量(强化训练)
  • 第5.5节:awk算术运算
  • 基于深度学习的森林火灾图像识别实战
  • 【撸靶笔记】第七关:GET - Dump into outfile - String
  • 浙江电信IPTV天邑TY1613_高安版_晶晨S905L3SB_安卓9_原厂固件自改_线刷包