centos 7 搭建python3和flask uWSGI服务详细流程

2024-05-05 01:38

本文主要是介绍centos 7 搭建python3和flask uWSGI服务详细流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.建立安装python3的安装目录

mkdir /usr/local/python3

2.下载python3到任意目录(一般会放在download文件夹里),记得加–no-check-certificate

wget --no-check-certificate https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

若提示:bash: wget: command not found

执行:yum install wget

3.解压文件夹

tar -zxvf Python-3.6.2.tgz

4.安装更新编译的依赖文件

yum install gcc-c++

5.进入解压后的目录,然后输入configure命令,prefix指定的是第一步创建的文件夹

cd Python-3.6.2
./configure --prefix=/usr/local/python3

6.继续在解压的文件夹下编译与安装

make&&make install

如果在编译到最后出现如下报错:

zipimport.ZipImportError: can’t decompress data; zlib not available

make: *** [install] Error 1

请执行yum install zlib-devel 安装依赖 ,然后再重新执行上述命令。

最后安装成功,在/usr/local/python3文件夹下会有相应的python3文件。

7.创建python3的软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

之后我们能在任意位置直接输入python3来调用,并且能够使用python来调用python2

8.安装python2的pip

yum -y install epel-release # 安装epel扩展源 有些可能已经安装过的,就跳过
yum -y install python-pip    
yum clean cache #清除缓存

,安装完成后可用pip list测试下,会显示python2下pip安装的包

[root@azimiao python3]# pip list
backports.ssl-match-hostname (3.5.0.1)
configobj (4.7.2)
decorator (3.4.0)
......
slip (0.4.0)
slip.dbus (0.4.0)
urlgrabber (3.10)
yum-metadata-parser (1.1.4)
You are using pip version 8.1.2, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

9.安装python3的pip

 wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zxvf 9.0.1.tar.gz
cd pip-9.0.1
python3 setup.py install 

10.成功之后创建软连接

ln -s /usr/local/python3/bin/pip /usr/bin/pip3

11.之后可以通过pip3 list来测试一下,如果有报红,可以通过

:pip3 install --upgrade pip

来升级一下pip3的版本

最后测试

[root@azimiao pip-9.0.1]# pip3 list
Package    Version
---------- -------
pip        18.1   
setuptools 28.8.0 

若使用pip安装第三方库时,提示确实ssl无法下载,是因为缺少ssl模块,则往下安装openssl-devel并重新编译安装

yum install openssl-devel
cd /root/Python-3.6.2   #解压缩的文件夹
./configure --with-ssl --prefix=/usr/local/python3
make&&make install

最终测试正常安装库并且正常导入。

12.使用pip3 安装python虚拟环境

pip3 install virtualenv

安装过程可能会报黄提示,不要管它,有提示 successful就行了。

13.新建一个需要放入项目的文件夹

mkdir /usr/local/pywebapp
cd /usr/local/pywebapp

14.进入新建的文件夹下,创建python的虚拟环境

/usr/local/python3/bin/virtualenv  -p /usr/bin/python3 venv

命令说明: /usr/local/python3/bin/virtualenv 是创建命令,/usr/bin/python3是指定python版本

完成后用ls查看下,会看得到有一个venv文件夹

[root@azimiao pywebapp]# ls
venv

15.激活或关闭虚拟环境

[root@azimiao pywebapp]# source venv/bin/activate
(venv) [root@azimiao pywebapp]# 

激活后再命令行前面会有(venv)

若需要关闭虚拟环境 执行

venv) [root@azimiao pywebapp]# deactivate
[root@azimiao pywebapp]#

注:在虚拟环境下已经不分python2python3,就是使用命令python同理,进入的是你设置的虚拟环境的python版本,pip同理

16.虚拟环境下安装,Flask

pip install flask

17.在虚拟环境中安装 uWSGI

pip install uwsgi

18.测试能否正常运行uWSGI

安装后在文件夹下新建test.py的python文件,输入以下代码:def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return [b"Hello World"]

使用命令

uwsgi --http :9090 --wsgi-file test.py

执行后,在浏览器输入:我的ip:9090 ,既能看到hello world

若打不开网页,多半是防火墙没开该端口,centos 7以上的系统的防火墙都是用firewall,要么关闭防火墙(不推荐),要么执行以下命令开启某端口

firewall-cmd --zone=public --add-port=80/tcp --permanent  #premanent 是永久生效
firewall-cmd --reload	#重新读取配置

19.最后对于长期提供服务的Flask web程序,最好是将配置文件放入配置文件中,在项目文件夹下配置config.ini文件 ,内容如下

[uwsgi]
# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001
# 指向网站目录
chdir=/usr/local/pywebapp/myflaskwebapp
# python 启动程序文件
wsgi-file = manage.py
# python 程序内用以启动的 application 变量名
callable = app
# 处理器数
processes = 4
# 线程数
threads = 2
buffer-size = 32768
#状态检测地址
stats = 127.0.0.1:9191

20.启动和关闭uWSGI

  • uwsgi启动:虚拟环境下 uwsgi config.ini
  • uwsgi 关闭:虚拟环境下 killall -9 uwsgi
  • 查看 uwsgi 进程: ps -ef | grep uwsgi

一般情况下,需要将服务后台运行,则需要使用nohup命令:

nohup uwsgi config.ini &

这篇关于centos 7 搭建python3和flask uWSGI服务详细流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960546

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL