介绍
简要介绍
Tornado 是一个 Python Web 框架和异步网络库,最后由 FriendFeed 开发。通过应用非阻塞网络 I / O,Tornado 能够扩大到成千上万的凋谢连贯,非常适合长时间轮询,WebSocket 和须要与每个用户建设长期连贯的其余应用程序。
本案例应用 x86_64 架构虚拟机,通过评估工具 x2openEuler 评估 tornado 4.2.1 软件移植到 openEuler 操作系统的兼容性,并依据评估后果实现软件移植。
语言:C++/Python
一句话形容:一个 Python Web 框架和异步网络库
开源协定:Apache
倡议的版本
倡议应用版本为 tornado 4.2.1。
阐明:
本文档实用于 tornado 4.2.1,其余版本的 tornado 移植步骤也可参考本文档。
环境要求
操作系统要求
操作系统 | 版本 |
---|---|
openEuler | 20.03 LTS SP1 |
CentOS | 7.6 |
装置操作系统
如果是全新装置操作系统,装置形式倡议不要应用最小化装置,否则很多软件包须要手动装置,可抉择“Server with GUI”装置形式。
装置 openEuler 操作系统请参考:https://openeuler.org/zh/docs/20.03_LTS_SP1/docs/Installation/installation.html。
兼容性评估
获取 tornado 的 RPM 包
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-tornado-4.2.1-5.el7.x86_64.rpm
下载 x2openEuler 工具
下载指引:https://www.openeuler.org/zh/other/migration/
部署工具
rpm -ivh x2openEuler-2.0.0-1.x86_64.rpm
留神:装置 rpm 时须要应用 root 用户,且目前须要网络(用于下载安装依赖)
留神:依据提醒装置依赖包如 bzip2-devel 等
su x2openEuler
x2openEuler redis-db -init
顺次录入 redis 数据库的 ip:127.0.0.1
端口:6379
数据库索引号(0-16):0
明码(工具会对明码加密解决):如果 redis 明码没有设置或者为空时,间接回车即可
x2openEuler init source_centos7.6-openEuler20.03-LTS-SP1.tar.gz
备注: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 python-tornado-4.2.1-5.el7.x86_64.rpm
留神要剖析的移植文件须要有可能让 x2openEuler 用户能够读取的权限
扫描实现后会在 /opt/x2openEuler/output 目录生成 html 格局的报告
查看评估后果
软件兼容性评估报告分三块内容展现软件兼容性,别离是依赖包兼容性、C/C++ 接口兼容性、java 接口兼容性,依赖包兼容性反映了软件包装置过程中的间接依赖,非 100% 表明无奈正确装置;接口兼容性反映的是单个软件运行过程中对其余软件包、动静库或零碎接口的调用变动,非 100% 表明在某个性能调用时可能会触发异样,未调用到时可能体现失常;局部后果倡议人工复核,最终软件包应用建优先级倡议 openEuler 已移植包 >openEuler 上人工重编译包 >centos 软件包。
后果:通过报告可知内部接口兼容性 100%,依赖包兼容性人工复核后通过,经评估 tornado4.2.1 软件包在 openEuler 20.03 LTS SP1 零碎上兼容,可装置此软件包至 openEuler 20.03 LTS SP1 零碎进行验证。
装置 tornado
rpm 装置
因为兼容性报告显示兼容,尝试间接用下载的 rpm 包装置。
[[email protected] ~]# yum install python-tornado-4.2.1-5.el7.x86_64.rpm -y
Last metadata expiration check: 0:11:53 ago on Mon 22 Mar 2021 01:25:06 PM CST.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
python-tornado x86_64 4.2.1-5.el7 @commandline 641 k
Installing dependencies:
python2-backports x86_64 1.0-17.oe1 everything 9.2 k
python2-backports-ssl_match_hostname noarch 3.7.0.1-2.oe1 everything 16 k
python2-ipaddress noarch 1.0.23-1.oe1 everything 41 k
python3-pycurl x86_64 7.43.0.3-1.oe1 OS 65 k
Transaction Summary
================================================================================
Install 5 Packages
Total size: 772 k
Total download size: 131 k
Installed size: 4.1 M
Downloading Packages:
(1/4): python2-backports-1.0-17.oe1.x86_64.rpm 53 kB/s | 9.2 kB 00:00
(2/4): python2-backports-ssl_match_hostname-3.7 63 kB/s | 16 kB 00:00
(3/4): python2-ipaddress-1.0.23-1.oe1.noarch.rp 126 kB/s | 41 kB 00:00
(4/4): python3-pycurl-7.43.0.3-1.oe1.x86_64.rpm 113 kB/s | 65 kB 00:00
--------------------------------------------------------------------------------
Total 226 kB/s | 131 kB 00:00
warning: /var/cache/dnf/OS-fcb43ce6e8cef091/packages/python3-pycurl-7.43.0.3-1.oe1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID b25e7f66: NOKEY
OS 14 kB/s | 2.1 kB 00:00
Importing GPG key 0xB25E7F66:
Userid : "private OBS (key without passphrase) <[email protected]>"
Fingerprint: 12EA 74AC 9DF4 8D46 C69C A0BE D557 065E B25E 7F66
From : http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/x86_64/RPM-GPG-KEY-openEuler
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : python2-ipaddress-1.0.23-1.oe1.noarch 1/5
Installing : python2-backports-1.0-17.oe1.x86_64 2/5
Installing : python2-backports-ssl_match_hostname-3.7.0.1-2.oe1.n 3/5
Installing : python3-pycurl-7.43.0.3-1.oe1.x86_64 4/5
Installing : python-tornado-4.2.1-5.el7.x86_64 5/5
Running scriptlet: python-tornado-4.2.1-5.el7.x86_64 5/5
Verifying : python3-pycurl-7.43.0.3-1.oe1.x86_64 1/5
Verifying : python2-backports-1.0-17.oe1.x86_64 2/5
Verifying : python2-backports-ssl_match_hostname-3.7.0.1-2.oe1.n 3/5
Verifying : python2-ipaddress-1.0.23-1.oe1.noarch 4/5
Verifying : python-tornado-4.2.1-5.el7.x86_64 5/5
Installed:
python-tornado-4.2.1-5.el7.x86_64
python2-backports-1.0-17.oe1.x86_64
python2-backports-ssl_match_hostname-3.7.0.1-2.oe1.noarch
python2-ipaddress-1.0.23-1.oe1.noarch
python3-pycurl-7.43.0.3-1.oe1.x86_64
Complete!
装置胜利。
运行和验证
查看版本
[[email protected] ~]# python
Python 2.7.18 (default, Dec 8 2020, 03:37:36)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tornado
>>> tornado.version
'4.2.1'
应用 tornado
编写一个 handlers 来响应一个规范的 http 申请。(代码来自 tornado 官网 https://www.tornadoweb.org/en/stable/)
vim hello.py
编辑内容如下:
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def make_app():
return tornado.web.Application([(r"/", MainHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
编辑后保留退出,在终端输出如下命令:
python hello.py
关上另外一个终端,输出如下命令。
curl http://localhost:8888
零碎回显如下,则示意装置胜利。
Hello, world
相干链接:
- openEuler 官网:www.openeuler.org/
- OS 迁徙专区: https://www.openeuler.org/zh/…
- openEuler 兼容性列表:https://www.openeuler.org/zh/…
- openEuler 迁徙指南:https://www.openeuler.org/zh/…