flask 1.1.2 移植指南(openEuler 20.03 LTS SP1)
1. 介绍
1.1 简要介绍
Flask 是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。 本案例使用 x86_64 架构虚拟机,通过评估工具 x2openEuler 评估 flask 1.1.2 软件移植到 openEuler 操作系统的兼容性,并根据评估结果完成软件移植。
开发语言:Python
开源协议:BSD
1.2 建议的版本
建议使用版本为 flask 1.1.2。
说明: 本文档适用于 flask 1.1.2,其他版本的 flask 移植步骤也可参考本文档。
2. 环境要求
2.1 操作系统要求
2.2 安装操作系统
如果是全新安装操作系统,安装方式建议不要使用最小化安装,否则很多软件包需要手动安装,可选择“Server with GUI”安装方式。 安装 openEuler 操作系统请参考:https://openeuler.org/zh/docs/20.03_LTS_SP1/docs/Installation/installation.html。
3. 兼容性评估
获取 flask 的 RPM 包
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/p/python36-flask-1.1.2-4.el7.noarch.rpm
- 1
下载 x2openEuler 工具
下载指引:https://www.openeuler.org/zh/other/migration/
- 1
部署工具
rpm -ivh x2openEuler-2.0.0-1.x86_64.rpm
- 1
注意:安装 rpm 时需要使用 root 用户,且目前需要网络(用于下载安装依赖) 注意:根据提示安装依赖包如 bzip2-devel 等
su x2openEuler
x2openEuler redis-db -init
- 1
- 2
依次录入 redis 数据库的 ip:127.0.0.1 端口:6379 数据库索引号(0-16):0 密码(工具会对密码加密 处理):如果 redis 密码没有设置或者为空时,直接回车即可
x2openEuler init source_centos7.6-openEuler20.03-LTS-SP1.tar.gz
- 1
备注:x2openEuler 使用 rpm 安装完成后会在/opt/x2openEuler 目录下带有 source_centos7.6-openEuler20.03-LTS-SP1.tar.gz 这个默认资源包 需要支持 centos8.2 到 openEuler20.03-LTS-SP1 的评估,则需获取对应的静态资源包导入,如对应的资源包为 source_centos8.2-openEuler20.03-LTS-SP1.tar.gz,导入此包命令:x2openEuler init source_centos8.2-openEuler20.03-LTS-SP1.tar.gz,请示情况选择对应的资源包
扫描软件
x2openEuler scan python36-flask-1.1.2-4.el7.noarch.rpm
注意要分析的移植文件需要有能够让x2openEuler用户可以读取的权限
扫描完成后会在/opt/x2openEuler/output目录生成html格式的报告
- 1
- 2
- 3
4. 查看评估结果
软件兼容性评估报告分三块内容展示软件兼容性,分别是依赖包兼容性、C/C++接口兼容性、java 接口兼容性,依赖包兼容性反映了软件包安装过程中的直接依赖,非 100%表明无法正确安装;接口兼容性反映的是单个软件运行过程中对其他软件包、动态库或系统接口的调用变化,非 100%表明在某个功能调用时可能会触发异常,未调用到时可能表现正常;部分结果建议人工复核,最终软件包使用建优先级建议 openEuler 已移植包>openEuler 上人工重编译包>centos 软件包。
结果:通过报告可知外部接口兼容性 100%,依赖包兼容性人工复核后确认缺失,由于该软件包属于 python 包,建议使用 pip3 方式安装依赖及 python-flask 对应版本。
5. 安装 flask
rpm 安装
由于兼容性报告显示依赖包缺失,尝试直接用下载的 rpm 包安装做个验证。
[root@localhost test]# yum install -y python36-flask-1.1.2-4.el7.noarch.rpm
Last metadata expiration check: 1:39:08 ago on Mon 22 Mar 2021 10:35:29 AM CST.
Error:
Problem: conflicting requests
- nothing provides python36-setuptools needed by python36-flask-1.1.2-4.el7.noarch
- nothing provides python(abi) = 3.6 needed by python36-flask-1.1.2-4.el7.noarch
- nothing provides python36-click >= 5.1 needed by python36-flask-1.1.2-4.el7.noarch
- nothing provides python36-itsdangerous >= 0.24 needed by python36-flask-1.1.2-4.el7.noarch
- nothing provides python36-jinja2 >= 2.10.1 needed by python36-flask-1.1.2-4.el7.noarch
- nothing provides python36-werkzeug >= 0.15 needed by python36-flask-1.1.2-4.el7.noarch
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
由于依赖原因未能安装。
pip 方式安装
使用 pip 安装同版本的 flask,由于 flask 依赖 python3,使用 pip3。
[root@localhost ~]# pip3 install flask
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting flask
Using cached Flask-1.1.2-py2.py3-none-any.whl (94 kB)
Requirement already satisfied: itsdangerous>=0.24 in /usr/lib/python3.7/site-packages (from flask) (1.1.0)
Requirement already satisfied: Werkzeug>=0.15 in /usr/local/lib/python3.7/site-packages (from flask) (1.0.1)
Requirement already satisfied: click>=5.1 in /usr/local/lib/python3.7/site-packages (from flask) (7.1.2)
Requirement already satisfied: Jinja2>=2.10.1 in /usr/lib/python3.7/site-packages (from flask) (2.11.2)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib64/python3.7/site-packages (from Jinja2>=2.10.1->flask) (1.1.1)
Installing collected packages: flask
Successfully installed flask-1.1.2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
6. 运行和验证
检查版本
[root@localhost ~]# python3
Python 3.7.9 (default, Dec 16 2020, 03:16:57)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>> flask.__version__
'1.1.2'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
使用 flask
使用 flask 官网 (https://flask.palletsprojects.com/en/1.1.x/quickstart/#a-minimal-application) 提供的入门程序
vim hello.py
- 1
编辑内容如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
- 1
- 2
- 3
- 4
- 5
- 6
编辑后保存退出,在终端输入如下命令:
[root@localhost ~]# export FLASK_APP=hello.py
[root@localhost ~]# python3 -m flask run
* Serving Flask app "hello.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
可见运行成功。
文章来源: https://www.openeuler.org/zh/blog/randy1568/flask%201-1-2-porting-guide.html
- 分享
- 举报

-
2023-11-23 14:46:33
-
2023-11-28 12:05:41
-
2023-11-29 11:30:08
-
2023-11-24 09:10:21
-
2023-11-28 15:02:59
-
2023-11-24 09:33:42
-
2023-11-24 09:20:45
-
2023-11-27 11:47:09
-
2023-11-23 11:04:00
-
浏览量:1009次2024-01-10 17:23:08
-
浏览量:134次2025-02-28 15:03:44
-
2024-06-14 11:49:14
-
浏览量:273次2025-01-16 21:26:58
-
浏览量:1097次2024-07-31 19:46:13
-
浏览量:6435次2021-09-14 13:51:27
-
浏览量:3684次2020-08-29 16:50:56
-
浏览量:3647次2020-09-27 11:30:57
-
浏览量:12200次2021-02-19 16:56:03
-
2022-11-10 10:36:09
- pkgship 2.1.0 移植指南(openEuler 20.03 LTS SP1)
- HiPico-OpenEuler Yolov8部署指导
- 【荣耀加冕】易百纳斩获“openEuler 2024年度明星项目”殊荣!
- Tengine 2.2.2 移植指南(openEuler 20.03 LTS SP1)
- 开源之夏2024学生报名启动,openEuler社区95个项目正式上线!
- openEuler Embedded 构建 ARM64 QEMU 镜像
- DP读书:开玩——定个项目基线表(海鸥派/欧拉派为例)
- HiEuler-Pico-OpenEuler Yolov8模型训练和转换——yolov8训练(三)
- 欧拉派 Euler Pi SD卡启动与升级操作指南
- openEuler操作系统安装在服务器的方法介绍(三):安装指导
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖

tomato






举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明