纯新手上路,Python3.10 flask线上环境部署心得

本文详细介绍了在CentOS操作系统上,如何从升级Python和OpenSSL开始,一步步部署Python3.10项目。强调了升级Python前需先升级OpenSSL,以及安装python-dotenv处理配置信息的重要性。使用宝塔面板简化操作,并提供了安装依赖、创建虚拟环境、配置uwsgi和nginx的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**项目简介 **

操作系统: CentOS
Python 版本:3.10

新人注意事项:

以下是本人尝试部署项目遇到的问题
1、升级Python版本之前一定要先升级OpenSSL,升级完OpenSSL以后再次编译Python,不然安装依赖会出现问题
2、项目上线一定要先安装python-dotenv ,处理好配置信息,不然会遇到你意想不到的bug
当你解决了这几样问题以后,使用宝塔部署项目就会一帆风顺

新手可按照我的方式一步一步来,基本不会出现问题。
学无止境,共勉之

第一步
安装宝塔操作面板,新人入门建议使(之前写php项目没有使用这个,简直是一个败笔),中小项目适用,中文面板,操作简单,傻瓜式一键安装,具体方法直接搜索宝塔官网

第二步 本地项目打包
1、安装python-dotenv
将项目的敏感信息以及特定的配置信息存储进去。项目根目录创建.flaskenv 文件,文件内容示例如下:

FLASK_APP = "manage"
FLASK_ENV = "development"
2、收集安装依赖
pip freeze > requirements.txt

3、 将本地项目文件(除了虚拟环境目录外的所有文件)添加到压缩文件中
4、登录宝塔 创建站点,这里不直接选择Python的原因有点。
第一,一般购买的服务器默认的Python版本为3.6有的是2.7,需要升级,直接使用Python项目部署Python3.10版本的项目会有问题
第二,手动部署一下熟悉流程,对后续解决问题有好处
在这里插入图片描述
添加站点完成以后,可以直接点击当前站点列表中的根目录直接跳转或者点击文件根据路径去到你创建的站点文件夹下上传代码
在这里插入图片描述

第三步,终端操作
1、查看Python版本、openSSL版本,如果Python版本符合你项目需求请略过,这里主要讲讲Python升级到3.10,Python3.10要求OpenSSL必须在1.1 以上,我安装的是1.1.11,也可以安装3.1.1,系统自带的1.0不符合要求

# 查看Python版本
python3 -V
#查看openssl 版本
openssl version

安装OpenSSL1.1.11

wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar -xzvf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
./config shared zlib  --prefix=/usr/local/openssl && make && make install
# 安装结束后执行以下命令:
./config -t
make depend
# 进入/usr/local目录下,执行以下命令:
ln -s openssl ssl

#切换openssl版本
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
 
 
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
 
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
 
ldconfig -v

openssl version -a

安装Python3.10

 # 安装前准备
 1、安装gcc
	yum install gcc -y
2、安装python依赖
	yum install zlib zlib-devel -y
	yum install bzip2 bzip2-devel -y
	yum install ncurses ncurses-devel -y
	yum install readline readline-devel -y
	yum install openssl openssl-devel -y
	yum install xz lzma xz-devel -y
	yum install sqlite sqlite-devel -y
	yum install gdbm gdbm-devel -y
	yum install tk tk-devel -y
	yum install mysql-devel -y
	yum install python-devel -y
	yum install libffi-devel -y
 # 选择安装目录 执行 (wget 没有请安装 yum install wget -y)
    wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
    tar -xvf Python-3.10.4.tgz
 # cd Python-3.10.4
 #  更新openssl 以后 使用该命令 重新编译Python
    ./configure  prefix=/usr/local/python3 --with-ssl
    make all &&  make install
# 安装完成,配置软链(sf 覆盖之前存在的文件)
    ln -sf /usr/local/python3/bin/python3.10 /usr/bin/python3
    ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip3

# python解释器豆瓣源(根据自己本地的可换成阿里或者腾讯、清华等源)
     pip3 config set global.index-url https://pypi.douban.com/simple

安装完成以后查看版本,没问题即可

第四步,部署项目

# 进入项目目录 
cd /www/wwwroot/xxxxx
# 安装虚拟环境 查看Python版本 是否正确 Python3 -V 
python3 -m venv venv
# 启动虚拟环境  命令行前方出现(venv)代表环境启动成功
. venv/bin/activate
# 安装项目依赖
pip3 install -r requirements.txt

# 启动测试,如果成功启动 使用绑定域名加端口可以访问证明项目上面操作没有问题
python3 manage.py

注意
如果安装依赖时出现以下错误,代表OpenSSL不符合Python要求或者依赖没有安装
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

# 执行该命令以后基本会成功 
yum install gcc libffi-devel zlib* openssl-devel
# 如果在虚拟环境中提示该错误,在虚拟换下开启的情况下去到你的Python安装包中 执行
./configure --with-ssl
make
make install

第五步,配置uwsgi

# 在自己的项目指定目录下创建 uwsgi.ini 文件, 建议新建一个目录或者放在根目录下面
# 我是将文件创建在根目录下面的extend目录下,内容如下
[uwsgi]
#启用主进程
master = true
# 进程个数
processes = 4
# 线程个数
threads = 2
#项目目录
chdir = /www/wwwroot/test.mirouspace.com

#指定项目application
wsgi-file = %(chdir)/manage.py

# 指定ip及端口
# 默认http模式,可切换至socket模式
; http = 0.0.0.0:7000
socket = 127.0.0.1:7000

# 权限配置当前用户可读可写,组用户可读可写不可执行,其他用户无权限
chmod-socket = 660
# 自动清除pid文件
vacuum = true
# 虚拟环境路径
virtualenv = %(chdir)/venv
# 回调名称
callable = app
#pid 文件存储路径
pidfile = %(chdir)/extend/uwsgi.pid
daemonize = %(chdir)/extend/uwsgi.log
logto = %(chdir)/extend/error.log

#启动uwsgi的用户名和用户组
; uid=www
; gid=www
# 自定义设置项请写到该处, 
# 如果项目的启动方式您不想使用 wsgi-file 请注释掉,但不要删除,通讯方式(http, socket)同理;
# 最好以上面相同的格式 <注释 + 换行 + key = value> 进行书写,方便以后查阅

启动、停止命令

# 安装uwsgi 在虚拟环境下执行
 pip3 install uwsgi
# 使用配置文件 进入虚拟环境 & 后台运行
 uwsgi --ini /extend/uwsgi.ini &
# 停止
 uwsgi --stop /extend/uwsgi.pid

启动成功使用域名加端口可以直接访问, uwsgi.ini 里面使用的是 http模式,建议改成socket模式

第六步,配置nginx
打开宝塔面板
在这里插入图片描述
修改完成点击保存 重启 uwsgi.ini 或者直接停止 uwsgi 然后再次启动,成功以后即可直接使用域名访问项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值