移植python3.6.2至FCU1101笔记(zlib、sqlite3)

👉资源下载👈
👆👆👆👆编译需要的文件请下载

移植python3.6.2至FCU1101笔记:

一、安装环境

  • 要求
  • 直接编译python,在Ubuntu中安装Python3解释器
  • 交叉编译python
  • 复制可移植文件到arm文件系统

平台环境

  • host:Ubuntu 12.04 LTS(32位)i386
  • target: 6Q-C_linux3.14.38
  • 虚拟机:VMware® Workstation 15 Pro
  • python版本:3.6.2
  • 编译工具链:arm-fsl-linux-gnueabi-gcc
  • 编译工具链版本:gcc version 4.6.3
  • 编译依赖库必要文件
    - openssl-OpenSSL_1_0_1b.zip
    - zlib-1.2.3.tar.gz
    - sqlite-autoconf-3330000.tar.gz
  • 具体步骤:
  1. 编译 openssl 和 zlib,编译安装sqlite3, python需要sqlite3支持
cd /opt/ 
mkdir mx6q-python3.6 && cd mx6q-python3.6
mkdir misc && cd misc
  1. 把openssl-OpenSSL_1_0_1b.zip、sqlite-autoconf-3330000.tar.gz和
    zlib-1.2.3.tar.gz放到当前目录下
tar xvf zlib-1.2.3.tar.gz && cd zlib-1.2.3 && mkdir arm_install
./configure --prefix=./arm_install/
sed -i 's/gcc/arm-none-linux-gnueabi-gcc/g' Makefile
sed -i 's/AR=ar/AR=arm-none-linux-gnueabi-ar/g' Makefile
make && make install
cd /opt/mx6q-python3.6/misc/
unzip openssl-OpenSSL_1_0_1b.zip && cd openssl-OpenSSL_1_0_1b
mkdir arm_install
./Configure --prefix=`pwd`/arm_install/ os/compiler:arm-none-linuxgnueabi-gcc
  1. 需要修改 Makefile 中的 CC 变量为 CC= $(CROSS_COMPILE)gcc
make && make install
cd /opt/mx6q-python3.6/misc/
tar xvf sqlite-autoconf-3330000.tar.gz
cd sqlite-autoconf-3330000 
./configure --host=arm-none-linux-gnueabi --prefix=$PWD/../sqlite3 
make -j8 && make install
  1. 编译PC版python
    将安装包复制到/opt/mx6q-python3.6文件目录下并解压
tar –zxvf Python-3.6.2.tgz
cd /opt/mx6q-python3.6/Python-3.6.2
./configure
  1. 编译Python的嵌入式版需要解释器解析,从而编译Python的模块,因此需要先编译出host的解释器,不然无法编译arm版python执行make和make install
make && make install

这时Ubuntu已经安装python3.6.2,通过python3查看

二、编译安装target版Python

  1. 在Python-3.6.2文件夹 清除pc版编译痕迹
make clean
make distclean

2.把zlib编译好的include和lib目录与复制到/opt/mx6q-python3.6/Python-3.6.2
修改Modules/Setup.dist。修改并取消掉下面的注释

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib –lz

SSL=/opt/mx6q-python3.6/misc/openssl-OpenSSL_1_0_1b/arm_install
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto
  1. 交叉配置
./configure --host=arm-fsl-linux-gnueabi \
--build=i386 \
--prefix=`pwd` \
CC=arm-fsl-linux-gnueabi-gcc \
RANLIB=arm-fsl-linux-gnueabi-ranlib \
AR=arm-fsl-linux-gnueabi-ar \
CXX=arm-fsl-linux-gnueabi-g++ \
ac_cv_file_udev_ptmx=yes \
ac_cv_file__dev_ptmx=yes \
ac_cv_file__dev_ptc=no \
--disable-ipv6 \
--with-ensurepip=yes \
--enable-optimizations \
LDFLAGS="-L/opt/mx6q-python3.6/misc/sqlite3/lib -L/opt/mx6q-python3.6/misc/sqlite3/lib " \
CPPFLAGS="-I/opt/mx6q-python3.6/misc/sqlite3/include -I/opt/mx6q-python3.6/misc/sqlite3/include "
/*会自动安装pip3及优化配置*/
/*说明:--host你编译好的程序可以运行的平台*/
/*说明:--build=i686你正在使用的机器*/
/*说明:--prefix   make install的安装目录*/
/*说明:其他参数没有就报错,添加上就行了*/

3.编译命令

make  #make 期间Python-3.6.2/lib中的lib包会被删除,需要将原包中的lib包复制过来,会删除两次,缺少不能成功编译
rm -rf /usr/bin/lsb_release  
make install   #make install 会报错需执行上句命令

漫长的等待过程后,在当前目录有4个文件夹
在这里插入图片描述

cd /opt/mx6q-python3.6/Python-3.6.2
mkdir python3 
mv ./bin ./python3
mv ./include ./python3
mv ./lib ./python3
mv ./share ./python3

将上面四个文件打包然后拷贝到板子上

tar -czvf python3.tar.gz python3

解压到文件系统/opt目录下

tar zxvf python3.tar.gz

修改文件/etc/profile,在末尾添加环境变量

export PATH=/opt/mylib/bin:$PATH
export LD_LIBRARY_PATH=/opt/mylib/lib:$LD_LIBRARY_PATH

同时注释掉python2的环境变量,否则会报错

wq保存退出,sync后重启
然后输入python3运行

三、为Python安装pip工具
由于python需要安装相当多的模块,可以使用pip 安装,pip被当作easy_install的替代品
步骤一:python在python3.x以上的发行版本中,都是自带pip的。python3中的pip叫pip3。首先尝试从标准库中对其进行引导

python3 -m ensurepip --default-pip
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
imx6ul应用开发资料。卷序列号为 A899-5E01 H:. │ FCU1101嵌入式控制单元支持功能项列表-2018.10.18.xlsx │ 文件夹目录.txt │ 文件夹目录名批列出.bat │ ├─Linux │ ├─应用 │ │ │ 系统常用命令.pdf │ │ │ │ │ ├─485 │ │ │ 485-test │ │ │ 485-test.c │ │ │ │ │ ├─lora-EC32-TTL-100 │ │ │ │ E32_Demo.zip │ │ │ │ E32_Usermanual_CN_1.40.pdf │ │ │ │ lora.pdf │ │ │ │ RF_Setting.Form1.resources │ │ │ │ RF_Setting.Properties.Resources.resources │ │ │ │ RF_Setting3.47.exe │ │ │ │ RF_Setting3.47.zip │ │ │ │ SX1278无线模块LoRa扩频技术文档(433M亿佰特E32-TTL-100) (1).pdf │ │ │ │ │ │ │ └─Sscom32 │ │ │ sscom.ini │ │ │ sscom32.exe │ │ │ 注意事项.txt │ │ │ │ │ ├─modbus │ │ │ │ libmodbus-3.1.2.tar.gz │ │ │ │ ul-modbus测试.txt │ │ │ │ │ │ │ ├─库文件 │ │ │ │ m3.tar.bz2 │ │ │ │ │ │ │ └─测试程序 │ │ │ unit-test-client │ │ │ unit-test-server │ │ │ │ │ ├─mosquitto │ │ │ │ mosquitto-1.5.tar.gz │ │ │ │ mqtt协议移植总结.pdf │ │ │ │ openssl-1.0.2h.tar.gz │ │ │ │ │ │ │ └─移植到开发板上 │ │ │ install_mosquitto.tar.bz2 │ │ │ install_openssl.tar.bz2 │ │ │ │ │ ├─socket │ │ │ │ build.sh │ │ │ │ eth0_server.c │ │ │ │ eth1_server.c │ │ │ │ Makefile │ │ │ │ Makefile.arm │ │ │ │ socket_client.c │ │ │ │ socket测试.pdf │ │ │ │ │ │ │ ├─bin │ │ │ │ └─arm │ │ │ │ client │ │ │ │ client.sh │ │ │ │ server.sh │ │ │ │ server1 │ │ │ │ server2 │ │ │ │ │ │ │ └─源码 │ │ │ build.sh │ │ │ eth0_server.c │ │ │ eth1_server.c │ │ │ Makefile │ │ │ Makefile.arm │ │ │ socket_client.c │ │ │ │ │ ├─tcpdump │ │ │ │ libpcap-1.8.1.tar.gz │ │ │ │ tcpdump-4.9.2.tar.gz │ │ │ │ │ │ │ └─移植到开发板 │ │ │ tcpdump.tar.bz2 │ │ │ │ │ ├─TFTP与NFS服务器搭建 │ │ │ TFTP与NFS服务器搭

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值