在ELF 1開發(fā)板的Linux 4.1.15 eMMC鏡像中,默認(rèn)預(yù)裝了Python 2.7。為了適應(yīng)更多應(yīng)用場景,有些小伙伴可能需要移植其他版本的Python,下面將以Python 3.6.9為例詳細(xì)介紹如何進(jìn)行交叉編譯并移植到ELF 1開發(fā)板上。
下載Python-3.6.9.tar.xz壓縮文件。
elf@ubuntu:~/work$ tar xvf Python-3.6.9.tar.xz
2、進(jìn)入Python-3.6.9目錄:
elf@ubuntu:~/work$ cd Python-3.6.9/
3、創(chuàng)建新目錄:
elf@ubuntu:~/work/Python-3.6.9$ mkdir build-arm
4、虛擬機(jī)安裝Python 3.6.9:
(1)編譯:
elf@ubuntu:~/work/Python-3.6.9$ ./configure
elf@ubuntu:~/work/Python-3.6.9$ make
elf@ubuntu:~/work/Python-3.6.9$ sudo make install
編譯報(bào)錯(cuò),執(zhí)行如下命令:
elf@ubuntu:~/work/Python-3.6.9$ sudo apt-get install zlib*
elf@ubuntu:~/work/Python-3.6.9$ sudo make clean
5、交叉編譯Python:
(1)進(jìn)入build-arm目錄:
elf@ubuntu:~/work/Python-3.6.9$ cd build-arm/
(2)設(shè)置交叉編譯環(huán)境變量:
elf@ubuntu:~/work/Python-3.6.9/build-arm$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
(3)設(shè)置CONFIG_SITE環(huán)境變量:
elf@ubuntu:~/work/Python-3.6.9/build-arm$ echo ac_cv_file__dev_ptmx=no > config.site
elf@ubuntu:~/work/Python-3.6.9/build-arm$ echo ac_cv_file__dev_ptc=no >> config.site
elf@ubuntu:~/work/Python-3.6.9/build-arm$ export CONFIG_SITE=config.site
(4)交叉編譯:
elf@ubuntu:~/work/Python-3.6.9/build-arm$ ../configure --host=arm-poky-linux-gnueabi --build=x86_64-linux-gnu --prefix=$PWD/_install --disable-ipv6
elf@ubuntu:~/work/Python-3.6.9/build-arm$ make
elf@ubuntu:~/work/Python-3.6.9/build-arm$ make install
編譯報(bào)錯(cuò),執(zhí)行如下命令:
elf@ubuntu:~/work/Python-3.6.9/build-arm$ sudo rm /usr/bin/lsb_release
elf@ubuntu:~/work/Python-3.6.9/build-arm/_install$ tar cvf python3.6.tar.bz2 ./
(2)將生成的壓縮包文件放到開發(fā)板文件系統(tǒng)根目錄下進(jìn)行解壓:
root@ELF1:~# cd /
root@ELF1:/# cp /run/media/sda1/python3.6.tar.bz2 .
root@ELF1:/# tar xvf python3.6.tar.bz2
(3)設(shè)置環(huán)境變量:
root@ELF1:/# export PYTHONPATH=$PYTHONPATH:/lib/python3.6
root@ELF1:/# export PYTHONHOME=$PYTHONHOME:/lib/python3.6
(4)運(yùn)行測試:
root@ELF1:/# python3.6
Python 3.6.9 (default, Nov 10 2023, 03:00:36)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version
'3.6.9 (default, Nov 10 2023, 03:00:36) n[GCC 5.3.0]'
關(guān)于如何成功將Python 3.6.9移植到ELF 1開發(fā)板中的過程已經(jīng)詳盡介紹完畢,希望以上的指南能對(duì)各位小伙伴提供切實(shí)的幫助!