ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

移植Python3.7到S3C2440

2022-01-07 23:05:02  阅读:271  来源: 互联网

标签:bin Python python library Python3.7 linux S3C2440 arm 移植


基本上是参考网上的文章,具体原理性的东西我也不太懂

  • 开发板: 友善mini2440
  • gcc: arm-linux-gcc 4.4.3
  • 宿主机: deepin-linux-20

1.下载python3.7

百度搜索Python国内下载 去阿里源下载Python-3.7.10.tgz就行。别下太新的,也许编译通不过。
也别下3.6之前的,因为我在开发板上要运行下载的get-pip.py(自行百度)说是不支持3.6版本之前的。

2.编译宿主机Python

cd Desktop/Python-3.7.10/
mkdir build.pc
cd build.pc
sudo ../configure //这里直接configure就行,因为这里是编译x86的Python 采用默认配置就好
sudo make -j4 & make install
sudo rm /usr/bin/python //先删除电脑上你正在使用的Python的软连接,替换为刚刚编译的python版本
sudo ln -sf /usr/local/bin/python3.7 /usr/bin/python //替换
python -v //看看版本是不是替换过来了。上面的文件路径要依据你自己的电脑的实际情况。

3.交叉编译

然后接下来的步骤基本上是依据这个博客
注意要先编译(交叉编译)sqlite 并在python的setup.py里修改sqllite的路径

按照里面的步骤,先make Parser
然后 
mkdir build.arm install.arm 
sudo ../configure --host=arm-linux --build=arm --prefix=/home/wangke/Desktop/Python-3.7.10/install.arm/ CC=/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc CXX=/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-g++ AR=/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-ar --disable-ipv6 --enable-shared READELF=arm-linux-readelf ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no --enable-optimizations
/*进行编译配置,会生成Makefile 这里注意编译器路径要用绝对路径/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc, 如果提示你有错误,改正就好, 一般来说查看config.log 然后修改第一级目录下的configure文件(一般是直接整段注释掉提示出错的地方),
如果能正常生成Makefile 说明配置基本成功, 但是还是要检查和按照上面的博客修改下Makefile和setup.py*/

4. sudo make & make install

在刚刚设置的–prefix=/home/wangke/Desktop/Python-3.7.10/install.arm/ 文件夹下就有 编译好的 python可执行程序(解释器),和相关的库文件等,将该目录下的所有文件和文件夹拷贝到开发板,比如我的是/mnt/sdcard
然后在开发板的终端里面

vi /etc/profile //没有自己建一个
添加上
export PATH=$PATH:/mnt/sdcard/python/bin   # 用于执行python,填写 Python目录中的Bin目录即可export PYTHONPATH=               # 这一行是为了额外的模块的搜索,根据实际模块的使用情况进行填写,可留空,可参考附录进行填写
export PYTHONHOME=/mnt/sdcard/python
export LD_LIBRARYPATH = $LD_LIBRARYPATH: python 文件下的/lib
保存退出
source /etc/profile
重启开发板
pytthon3 -v
如果提示缺少库什么的
在宿主机上 arm-linux-readelf -d 刚刚编译好的python3.7可执行程序,查看一下需要哪些库
 0x00000001 (NEEDED)                     Shared library: [libpython3.7m.so.1.0]
 0x00000001 (NEEDED)                     Shared library: [libcrypt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libutil.so.1]
 0x00000001 (NEEDED)                     Shared library: [librt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
没有的从编译器的库文件夹/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib里面拷贝到开发板LD_LIBRARYPATH(好吧好像是这个名字)指定的目录下 或者默认的/lib目录

在开发板的终端里出现如下图所示,则表示移植成功
在开发板的终端里出现如上图所示,则表示移植成功

标签:bin,Python,python,library,Python3.7,linux,S3C2440,arm,移植
来源: https://blog.csdn.net/wangke2b/article/details/122373379

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有