第三方库下载:PyPI · The Python Package Index
1、目的
在一个离线的arm平台上想运行python语言写的算法,尝试在arm平台中搭建python运行环境,并安装算法所需的第三方库。
2、整体思路
(1)交叉编译zlib库:提供数据压缩和解压缩功能的库。Python 很多模块和功能依赖于数据的压缩和解压缩操作。
(2)交叉编译ctypes库:允许 Python 代码调用 C 语言编写的动态链接库(DLL 或共享对象)。在交叉编译 Python 时,确保 ctypes 库正常工作非常重要,因为许多系统级别的功能和第三方库都是用 C 语言编写的。通过 ctypes,Python 可以利用这些 C 库的强大功能,扩展自身的能力边界。例如,访问底层硬件接口、调用操作系统特定的函数等。如果没有安装 ctypes 库,Python 将无法直接与这些 C 库进行交互,从而限制了其在系统级编程和与其他 C 语言组件集成方面的能力。
(3)交叉编译openssl库:一个强大的安全套接字层密码库,提供了对 SSL/TLS 协议的支持,以及各种加密算法和工具。Python 中的许多网络应用,特别是涉及到安全通信的应用,如 https
协议的网络请求、安全的邮件传输等,都依赖于 openssl 库来实现加密和认证功能。如果不安装 openssl 库,Python 的网络安全功能将受到严重影响,无法进行安全的网络通信,容易受到各种网络攻击。
(4)先在x86主机上安装x86主机版本的python,称之为x86-python
(5)交叉编译arm机版本的python,称之为arm-python
3、交叉编译步骤
3.1编译x86_zlib
(1)下载zlib源码,我下载的是zlib1.2.11版本
(2)解压缩包,依赖库的源码包放在~/work/python-arm/目录下
(3)cd zlib-1.2.11
(4)设置编译环境: ./configure
(5)执行编译安装 make&&make install ,此时安装成功(注:make install时可能会报错权限不够,此时执行sudo make install避免错误。)
3.2交叉编译arm_zlib
(1)此时在~/work/python-arm/zlib-1.2.11目录下
(2)新建脚本config-arm.sh,设置交叉编译器和编译环境,执行脚本:
#!/bin/sh
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export AR=arm-linux-gnueabihf-ar
export RANLIB=arm-l