应用迁移一课一得

目录

前言

Python语言简介

Python语言移植

编写测试代码hello.py

查询本地的Python环境

Yum search python 看一下是否有py环境 

Numpy ​​​​​​​模块移植

安装pip来管理Numpy模块

使用pip命令进行安装

应用移植方案

总结

前言

Python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。Python在通用应用程序、自动化插件、网站、网络爬虫、数值分析、科学计算、云计算、大数据和网络编程等领域有着极为广泛的应用,像OpenStack这样的云平台就是由Python实现的。


Python语言简介

Python 是一种解释型、交互式、面向对象的编程语言。

Python 的设计哲学强调代码的可读性和简洁的语法。

Python 是跨平台的,可以在多种操作系统上运行

Python 是一种解释型语言,其源代码可直接运行。

Python 支持多种编程范式,包括过程编程、对象编程,以及最近的函数编程

Python 的社区非常活跃,拥有丰富的库和工具,使得 Python 在数据科学机器学习网络编程等领域广受欢迎。


Python语言移植

编写测试代码hello.py

1.java是class字节码,python就是pyc。

2.java 会在jvm,python在pvm(py虚拟机),之前jvm屏蔽了操作系统、指令集的区别,同理python中pvm承担了相同的工作。

3.cpu执行,打印强调的是:py语言,从源码到执行的过程。

查询本地的Python环境

yun search python

Yum search python 看一下是否有py环境 

把在X86系统上的hello.py直接拷贝到ARM系统同样执行

python hello.py


 


Numpy ​​​​​​​模块移植

在ARM环境下的麒麟操作系统中 ,加载Numpy模块

另外一个实验
我们在编写python代码的时候,通常会通过import加载外部模块,本实验演示的加载numpy模块(假如用到)如何移植。(import加载numpy报错,没有找到numpy模块
解决方法:1.pip

通过pip模块管理工具 移植Numpy模块

安装pip来管理Numpy模块

 通过python内建的pip工具来安装相关模块。
第一行:Yum 先安装pip工具
第二行:pip3 install 作用是升级pip,因为安装后不是最新的pip版 本,会造成pip无法正常使用
第三行:pip config更改安装源,默认是国外地址
第四行:pip install pip_search 默认的search功能被禁止,必须安装pip_search模块才能使用search功能
第五行:pip search,通过上一步安装的pip search查找源中是否有numpy模块
注意:有些模块在x86的官方源中有,在arm环境中没有.

使用pip命令进行安装

pip install numpy

安装numpy ,导入numpy模块,np.zeros(2)验证numpy功能 

移除刚才pip安装的numpy模块

验证移除效果

安装编译所需要的编译器

下载Numpy源码包,然后通过setup.py进行编译安装

下载源码包
第三行:安装依赖cython
第四行:执行setup.py install进行编译安装

验证


应用移植方案

基于解释型语言开发应用移植方案

解释型语言:典型的如Python语言,属于解释型语言。

解释型语言开发的程序在迁移到国产化平台时,一般不需要重新编译。

解释型语言的源代码由编译器生成字节码,再由虚拟机解释执行。

虚拟机将不同CPU指令集的差异屏蔽,因此解释型语言的可移植性很好。

如果程序中调用了编译型语言所开发的so库,那么这些so库需要重新移植编译。


总结

解释性语言,跟java一样,如果用到了函数库(如numpy) ,都放到虚拟机中执行。
强调一下如果用相关函数库,arm环境中也要有相关函数库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值