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

linux 部署flask项目

linux python环境安装:  https://blog.csdn.net/weixin_41934979/article/details/140528410

1.创建虚拟环境

python3.12 -m venv .venv

2.激活环境

 . .venv/bin/activate

 3.安装依赖包(pip3.12 install -r requirements.txt)

pip3.12 install -r requirements.txt

4.测试启动项目

python3.12 app.py

5.在虚拟环境中安装gunicorn

pip install gunicorn

6.安装配置Supervisor

6.1安装Supervisor

CentOS

首先,安装 EPEL 扩展源(如果尚未安装):

sudo yum install epel-release

 然后,使用 yum 命令安装 Supervisor:

sudo yum install supervisor

Ubuntu 

sudo apt install supervisor

查看版本,确认supervisor是否成功安装

supervisord --version
6.2配置supervisor

查看supervisor的配置

注意不同版本的Linux系统,不同版本supervisor,配置文件路径可能不同

CentOS

cat /etc/supervisord.conf

主要配置代码如下(主要看[include]下的文件路径):

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.[include]
files = supervisord.d/*.ini

Ubuntu

cat /etc/supervisor/supervisord.conf
; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.[include]
files = /etc/supervisor/conf.d/*.conf

创建.ini配置文件或者.conf配置文件(具体要看[include]下面路径是*.ini,还是*.conf),

文件要放进  [include]下的文件路径里

这里以Ubuntu为例

再次提醒.conf配置文件,文件要放进:[include]下的文件路径里,

放进/etc/supervisor/conf.d路径里

创建文件flaskapi.conf配置文件

 vi /etc/supervisor/conf.d/flaskapi.conf

内容如下:

[program:flaskapi] ; :右边是项目名称
command=/bin/bash -c ". .venv/bin/activate&&nohup python -m gunicorn -D -w 4 -b 0.0.0.0:8011 -t 120 app:app --access-logfile access.log --error-logfile error.log" ; 启动虚拟环境下的gunicorn,这里建议使用绝对路径
directory=/usr/projects/flask-api ; 程序的启动目录,这里是Flask网站根目录
user=root ; 用户名
autostart=true ; 在 supervisord 启动的时候也自动启动
autorestart=true ; 程序异常退出后自动重启
stopasgroup=true ; 它表示当该进程停止时,与该进程属于同一组的所有相关进程也会同时停止
killasgroup=true ; "杀死"整个组的进程
loglevel=info ; 日志级别设置为“信息”级别
6.3更新配置文件
supervisorctl update

启动supervisor服务 

 systemctl enable supervisor

查看服务状态 

systemctl status supervisor.service

7.curl测试是否能访问接口

curl http://localhost:8011/ -w '\n'

成功访问 

8.重启服务器flask是否开机自启 

重启后再次访问接口

curl http://localhost:8011/ -w '\n'

服务开机自启成功 

 

参考资料

https://blog.csdn.net/qq_39680564/article/details/102739143 

相关文章:

linux 部署flask项目

linux python环境安装: https://blog.csdn.net/weixin_41934979/article/details/140528410 1.创建虚拟环境 python3.12 -m venv .venv 2.激活环境 . .venv/bin/activate 3.安装依赖包(pip3.12 install -r requirements.txt) pip3.12 install -r requirements.txt 4.测试启…...

ES6 数值的扩展(十八)

1. 二进制和八进制字面量 特性:可以直接在代码中使用二进制(0b 或 0B)和八进制(0o 或 0O)字面量。 用法:简化二进制和八进制数值的表示。 const binaryNumber 0b1010; // 二进制表示 10 const octalNumb…...

面试知识储备-redis和redission

1.redis的使用 引入依赖,自动注解redistemplate即可使用, 默认的redistemplate存入到redis中是字符流的形式,需要配置redistemplate, 如果不想配置,可以使用stringRedistemplate 可以使用string类型,但是…...

【5本可选】保证知网检索,现在投稿可在8月见刊,对文科领域友好

AEPH出版社旗下有5本学术期刊,专门出版自然科学、社会科学研究与教育领域论文的高影响力期刊,拥有正规ISSN号,出版类型涉及应用和理论方面的原创和未曾公开发表的研究论文,分配独立DOI号。 期刊1 Philosophy and Social Science…...

SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

在本文中,我们将演示如何新建一个基本的 Spring Boot 项目。写这篇文章的时候我还是很惊讶的,因为我发现有些java的初学者,甚至工作10年的老员工居然并不会新建一个SpringBoot项目,所以特别出了一篇文章来教大家新建一个SpringBoo…...

数据恢复篇:适用于 Android 视频恢复的 6 个工具

在智能手机这个动态的世界里,每一刻都被捕捉并以数字方式存储,丢失珍贵的视频可能是一种令人心碎的经历。不必担心,因为 Android 生态系统提供了大量旨在挽救这些珍贵回忆的视频恢复应用程序。 这些应用程序是强大的工具,旨在挽救…...

Android笔试面试题AI答之控件Views(6)

答案来着文心一言,仅供参考 目录 1.简述什么是RemoteViews?使用场景有哪些?RemoteViews的特性使用场景总结 2.获取View宽高的几种方法?1. 在onWindowFocusChanged方法中获取2. 使用ViewTreeObserver.OnGlobalLayoutListener3. 使用ViewTreeObserver.OnPreDrawLi…...

扭蛋机潮玩小程序搭建,扭蛋机行业的创新

在当下潮玩市场中,扭蛋机具有盲盒的未知性和惊喜体验感,商品丰富,并且价格相对低廉,获得了极高的人气。年轻人开始对扭蛋机逐渐“上头”,为了扭到喜欢的商品不断地进行复购下单,在这场随机性的扭蛋游戏中&a…...

supOS赋能千行百业

推进制造业数字化转型是促进数字经济和实体经济深度融合的重点领域。在长期摸索和实践过程中,蓝卓打造了工厂操作系统、行业云操作系统、产业大脑操作系统三大产品,形成了企业侧、行业侧、产业侧的立体化赋能体系,全面赋能工业企业&#xff0…...

Vue中filter的使用

在 Vue.js 中,filter() 方法用于创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。filter() 不会改变原数组,而是返回一个新的数组。 语法 array.filter(callback(element[, index[, array]])[, thisArg])callback:…...

案例研究|柯尼卡美能达软件开发(大连)有限公司基于DataEase构筑内部数据可视化体系

柯尼卡美能达软件开发(大连)有限公司于2007年5月25日注册成立。公司以“洞悉在工作的人们真实情况,探寻他们的愿望,持续提供使人们更加幸福的服务”为使命,致力于系统品质测试服务、软件开发服务、IT安全服务、高级BPO…...

PHP框架详解- symfony框架

文心一言 Symfony框架是一个用PHP语言编写的开放源代码的Web应用框架,旨在加速Web应用程序的开发过程,提高代码的可维护性和可扩展性。以下是对Symfony框架的详细解析: 一、框架概述 起源与开发者: Symfony由SensioLabs&#…...

springboot系列十一:Thymeleaf

文章目录 官方文档基本介绍Thymeleaf机制说明Thymeleaf语法表达式运算符th属性迭代条件运算使用Thymeleaf th属性需要注意点 Thymeleaf综合案例需求说明思路分析代码实现 作业布置 官方文档 在线文档: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 离线…...

51单片机嵌入式开发:12、STC89C52RC 红外解码数码管显示

STC89C52RC 红外解码数码管显示 1 概述2 HX1838原理2.1 原理概述2.2 原理概述 3 HX1838代码实现3.1 工程整理3.2 工程代码3.3 演示 4 HX1838总结 1 概述 HX1838是一种常见的红外接收模块,用于接收和解码红外遥控器发送的红外信号。 HX1838具有以下特点和功能&#…...

数据结构--二叉树详解

一,概念 1,结点的度:一个结点含有子树的个数称为该结点的度 2, 树的度:一棵树中,所有结点度的最大值称为树的度; 3,叶子结点或终端结点:度为0的结点称为叶结点&#x…...

最短路径 | 743. 网络延迟时间之 Dijkstra 算法和 Floyd 算法

目录 1 基于 Dijkstra 算法1.1 代码说明1.2 完整代码 2 基于 Floyd 算法2.1 代码说明2.2 完整代码 前言:我在做「399. 除法求值」时,看到了基于 Floyd 算法的解决方案,突然想起来自己还没有做过最短路径相关的题。因此找来了「743. 网络…...

LLM模型与实践之基于 MindSpore 实现 BERT 对话情绪识别

安装环境 # 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行!pip install mindnlp0.3.1 !pip install mindnlp 模型简介 BERT是一种由Google于2018年发布的新型语言模型,它是基于Transforme…...

单例模式学习cpp

现在我们要求定义一个表示总统的类型。presented可以从该类型继承出French present和American present的等类型。这些派生类型都只能产生一个实例 为了设计一个表示总统的类型,并从该类型派生出只能产生一个实例的具体总统(如法国总统和美国总统&#x…...

第5讲:Sysmac Studio中的硬件拓扑

Sysmac Studio软件概述 一、创建项目 在打开的软件中选择新建工程 然后在工程属性中输入工程名称,作者,类型选择“标准工程”即可。 在选择设备处,类型选择“控制器”。 在版本处,可以在NJ控制器的硬件右侧标签处找到这样一个版本号。 我们今天用到的是1.40,所以在软…...

使用GoAccess进行Web日志可视化

运行网站的挑战之一是了解您的 Web 服务器正在做什么。虽然各种监控应用程序可以在您的服务器以高负载或页面响应缓慢运行时提醒您,但要完全了解正在发生的事情,唯一的方法是查看 Web 日志。阅读日志数据页面并了解正在发生的事情可能需要花费大量时间。…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

大数据学习(132)-HIve数据分析

​​​​🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言&#x1f4…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...

数据库——redis

一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...

Linux操作系统共享Windows操作系统的文件

目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...

[特殊字符] Spring Boot底层原理深度解析与高级面试题精析

一、Spring Boot底层原理详解 Spring Boot的核心设计哲学是约定优于配置和自动装配,通过简化传统Spring应用的初始化和配置流程,显著提升开发效率。其底层原理可拆解为以下核心机制: 自动装配(Auto-Configuration) 核…...

Docker环境下安装 Elasticsearch + IK 分词器 + Pinyin插件 + Kibana(适配7.10.1)

做RAG自己打算使用esmilvus自己开发一个,安装时好像网上没有比较新的安装方法,然后找了个旧的方法对应试试: 🚀 本文将手把手教你在 Docker 环境中部署 Elasticsearch 7.10.1 IK分词器 拼音插件 Kibana,适配中文搜索…...