用宝塔面板在服务器上搭建Python3的环境以及配置Python3的小项目
用宝塔面板在CentOS7服务器上搭建Python环境以及配置简单的Python项目
第一步,需要在服务器上配置Python3的环境
参考网址:https://blog.csdn.net/weixin_44897792/article/details/97803549
1. 查看本机版本以及类型
cat /etc/redhat-release
Last login: Fri Feb 25 18:14:03 2022 from localhost
[root@bogon ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
uname -a
[root@bogon ~]# uname -a
Linux bogon 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
2. 安装依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
[root@bogon ~]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* epel: mirrors.bfsu.edu.cn
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
软件包 zlib-devel-1.2.7-19.el7_9.x86_64 已安装并且是最新版本
软件包 bzip2-devel-1.0.6-13.el7.x86_64 已安装并且是最新版本
软件包 1:openssl-devel-1.0.2k-24.el7_9.x86_64 已安装并且是最新版本
软件包 ncurses-devel-5.9-14.20130511.el7_4.x86_64 已安装并且是最新版本
软件包 sqlite-devel-3.7.17-8.el7_7.1.x86_64 已安装并且是最新版本
软件包 readline-devel-6.2-11.el7.x86_64 已安装并且是最新版本
软件包 1:tk-devel-8.5.13-6.el7.x86_64 已安装并且是最新版本
软件包 gcc-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 1:make-3.82-24.el7.x86_64 已安装并且是最新版本
无须任何处理
3.下载Python源码包
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
或者可以去官网下载然后上传到服务器上。
[root@bogon ~]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* epel: mirrors.bfsu.edu.cn
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
软件包 zlib-devel-1.2.7-19.el7_9.x86_64 已安装并且是最新版本
软件包 bzip2-devel-1.0.6-13.el7.x86_64 已安装并且是最新版本
软件包 1:openssl-devel-1.0.2k-24.el7_9.x86_64 已安装并且是最新版本
软件包 ncurses-devel-5.9-14.20130511.el7_4.x86_64 已安装并且是最新版本
软件包 sqlite-devel-3.7.17-8.el7_7.1.x86_64 已安装并且是最新版本
软件包 readline-devel-6.2-11.el7.x86_64 已安装并且是最新版本
软件包 1:tk-devel-8.5.13-6.el7.x86_64 已安装并且是最新版本
软件包 gcc-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 1:make-3.82-24.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@bogon ~]# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
--2022-02-25 18:34:34-- https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
正在解析主机 www.python.org (www.python.org)... 151.101.108.223, 2a04:4e42:11::223
正在连接 www.python.org (www.python.org)|151.101.108.223|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:22745726 (22M) [application/octet-stream]
正在保存至: “Python-3.7.0.tgz”
100%[======================>] 22,745,726 44.9KB/s 用时 8m 39s
2022-02-25 18:43:14 (42.8 KB/s) - 已保存 “Python-3.7.0.tgz” [22745726/22745726])
4.解压Python安装包
tar -zxvf Python-3.7.0.tgz
5. 进入解压后的目录
cd Python-3.7.0
./configure
make&&make install
注意:如果运行make&&make install 失败,需要先运行一下如下的命令:
yum install libffi-devel -y
然后再次运行 make&&make install 命令。
6. 添加软连接,让我们可以利用python指令默认使用该版本的Python环境,把之前的python改成python.bak
默认情况下,python3.7安装在/usr/local/bin/。
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python3 /usr/bin/python
ln即为link的缩写。
默认pip也需要修改,可通过find / -name 'pip3’找到pip3的位置,同样加一条软链到bin里面:
[root@bogon Python-3.7.0]# find / -name 'pip3'
/usr/local/bin/pip3
/www/server/panel/pyenv/bin/pip3
/www/server/python_manager/versions/3.9.7/bin/pip3
/python_xiangmu/ddddocr_shibie/ad5e39eed57d12fe36a51d7adc0a6e1a_venv/bin/pip3
将原本的pip变成pip.bak,将该版本的pip3变成默认的pip。
mv /usr/bin/pip /usr/bin/pip.bak
ln -s /usr/local/bin/pip3 /usr/bin/pip
7. 配置yum
yum是依赖python2.7的,把python改成3.7自然就不好使了。但是不用担心,python2.7还在你的系统里。只要修改一下yum里的相关依赖即可。
vi /usr/libexec/urlgrabber-ext-down
找到一个/usr/bin/python的,后面加上2.7就可以,也就是/usr/bin/python2.7,然后wq保存。
8. 测试环境是否安装成功
如上图所示,环境就安装成功了。
第二步,部署Python项目
1. 在文件根目录下创建一个专门存放Python项目的文件夹
2. 将本地项目上传到服务器中
3. 项目内容如下:
项目代码:ddddocr_shibie.py
# -*-coding=utf-8
import random
import ddddocr # pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple
import base64
import os
from flask import Flask, jsonify, render_template, request # pip install flask
import json
# 思路:将图片的base64编码保存在code.txt文本中,再利用程序读取该文本,将其转换为图片 b64_to_img,转换为图片后,利用ddddocr模块识别图片上的内容,然后打印图片的内容,再然后删除图片。
# 图片的名称随机(0-99随机)
# 读取下一张图片时,将下一张图片的base64编码写入base64_code.txt
app = Flask(__name__) # 实例化app对象
testInfo = {}
# 生成随机图片名称: 仅供base64_to_img()方法调用才有用
def create_img_name():
# 1 生成随机图片名的随机数字部分: # 1~99
num = random.randint(1, 100000)
# 2 拼接成完整的图片名: # img01~img99
if num // 10 == 0: # 仅个位数则添0补成两位
img_name = "img0" + str(num) + ".jpg"
if num // 10 > 0: # 有两位数则直接拼接
img_name = "img" + str(num) + ".jpg"
return img_name
# base64编码转换成img图片文件
def base64_to_img(b64_code):
# 2. base64转换成图片数据:
img_data = base64.b64decode(b64_code)
# 3. 生成图片名称:
img_name = create_img_name() # 生成的图片名称就保存在img_name变量中
# 3.3 图片数据写入文件:
with open(img_name, "wb") as f:
f.write(img_data)
return img_name # 返回
# 传入的参数是图片的base64转码,输出并返回图片中的内容
def print_content(base64_filename):
# 1. 从文件中读取出base64编码字符串
with open(base64_filename, mode="r", encoding="utf-8") as f:
b64_code_ = f.read() # str
b64_code = b64_code_.replace("data:image/jpeg;base64,", "") # 去掉编码方式说明前缀,否则无法转码出来的文件是错误的
# 2. 转化成图片
img_name = base64_to_img(b64_code)
# 3. 下面开始读取
ocr = ddddocr.DdddOcr()
with open(img_name, mode='rb') as f:
img_bytes = f.read()
res = ocr.classification(img_bytes)
print("识别结果:", res) # 在控制台打印识别结果
os.remove(img_name)
return res
@app.route('/test_post', methods=['GET', 'POST']) # 路由
def get_result():
result = print_content("base64_code.txt")
testInfo['result'] = result
return json.dumps(testInfo)
# 两种方案:只删除图片,那样每次识别新的就需要更新base64_code文件;删除图片同时也删除base64_code.txt文件,那样下次识别就要重新上传该文件
if __name__ == "__main__":
app.run(host='0.0.0.0',
port=7777,
debug=True
)
在此处的终端运行一下程序可以得出结果:
访问网址即可得到:
4. 选择软件商店中的Python项目管理器,添加Python项目
点击确定。
等待安装项目所需依赖。
5. 项目添加完成
随时可以暂停该项目,让其停止运行。
6. 启动项目直接打开网址就能得到结果:
以上就是在宝塔面板上搭建Python3环境和部署Python3版本的项目的整个流程了。
更多推荐
所有评论(0)