先阅读文末的2篇参考文档

对用版本的镜像及编译顺序:libffi-3.4.3.tar.gz(为了python编译_ctypes模块);openssl-1.1.1.tar.gz(为了python编译_ssl模块);Python-3.7.9;setuptools-19.6.tar.gz、pip-8.0.2.tar.gz(这两个库在单板上使用python3 setup.py install安装)

编译错误修改:

//libffi相关

configure: error: "libffi has not been ported to riscv64-unknown-linux-gnu."  ??????更换个高版本支持RISC架构的  https://github.com/libffi/libffi/releases

./configure CC=arc-buildroot-linux-gnu-gcc -host=arc-buildroot-linux-gnu --build=x86_64-linux-gnu target=arc-buildroot-linux-gnu --enable-shared --prefix=/home/book/sk/package/libffi/libffi-3.0.13/_dist

//openssl相关

./config no-asm shared no-async --prefix=/opt/openssl/openssl-1.1.g/build_arm --cross-compile-prefix=arm-linux-

修改makefile,去除掉 -m64和-m32选项

 

//python相关

INFO: Could not locate ffi libs and/or headers (libffi-dev的库找不到,需将其交叉编译出来的库和头文件放至检查编译链对应的目录 且用CPPFLAGS指定头文件的位置

./configure CC=arc-buildroot-linux-gnu-gcc CXX=arc-buildroot-linux-gnu-g++ AR=arc-buildroot-linux-gnu-ar RANLIB=arc-buildroot-linux-gnu-ranlib --host=arc-buildroot-linux-gnu --build=x86_64-linux-gnu --target=arc-buildroot-linux-gnu --enable-shared --disable-ipv6 --with-system-ffi --with-openssl=DIR(交叉编译openssl的_dist目录) CPPFLAGS="-I/home/book/sk/archs-linux-glibc/host/arc-buildroot-linux-gnu/include" ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no --enable-optimizations --prefix=/root/book/python/Python-3.7.9/_dist

_ssl模块编译配置

--with-openssl=DIR  交叉编译openssl的_dist目录即可

若仍不能编译_ssl模块再加上下图的修改,执行python的configure之后,vi ./Modules/Setup.dist

 其它及参考文档:

(37条消息) 一、python3移植到嵌入式系统中(交叉编译python3)_python3交叉编译_lqjjdx的博客-CSDN博客

(37条消息) python3.7移植到ARM开发板_python-3.7移植arm_郭晋熙的博客-CSDN博客

//setuptools相关

python setup.py install ;安装结束之后,在cmd中输入 easy_install 来测试是否安装成功

//pip的安装依赖于setuptools;

//3.1 临时使用清华镜像来安装某个Python3的包

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple <PACKAGE>

//当然你若嫌弃每次打包整个python,可以单独编译出egg文件 python3 setup.py build 

egg 文件在当前目录下的dist中,然后拷贝.egg文件到开发板中/opt/python/lib/python3.7/site-packages,运行sh xx.egg文件,前提python已经安装zlib模块(若你的移植的python支持zlib,则将egg拷贝到开发板中通过sh命令解压);否则

在虚拟机中用unzip setuptools-41.0.egg 命令解压,python setuptools-41.0.py

//ssh交叉编译

(37条消息) 交叉编译ssh服务到ARM开发板_爱学习的诸葛铁锤的博客-CSDN博客