【平头哥Sipeed LicheeRV 86 Panel测评】 5-移植python3到开发板上
本帖最后由 manhuami2007 于 2022-4-6 10:24 编辑<div class="parsedown-markdown">
<blockquote>
<p>LicheeRV 86能够使用c和c++进行编程,有些代码感觉写起来比较麻烦,因此就想到了将python移植到板子上。经过了多天的努力,成功将python3.8移植到了开发板上。现将移植过程分享一下。</p>
</blockquote>
<p>python的主要代码也是用c/c++编写的,因此可以通过交叉编译将python编译成开发板可以使用的版本。编译完成将生成可执行文件和对应的lib。</p>
<p>通过将可执行文件加入到PATH变量,将库的路径加入了LD_LIBRARY_PATH变量,就可以实现python的功能了。</p>
<p>所以重点是如何生成可执行文件和库。</p>
<h3>1. 下载python的源码</h3>
<p>python的官网上提供源码的下载方式,下载之后解压即可得到所需的源代码。我选择的是python3.8.13 。</p>
<h3>2. 配置python的编译方式</h3>
<h4>2.1 设置编译工具对应的变量</h4>
<p>在编译python的时候需要指定编译所需的编译工具,其通过变量<code>CC, CXX, AR</code>等引入所需的编译工具。</p>
<p>这些工具已经在配置开发板交叉编译环境的时候配置好了,因此配置好环境之后就可以直接使用了。</p>
<p>注意在使用之前要通过source命令,使能开发板编译工具的变量。</p>
<h4>2.2 建立文件夹</h4>
<p>在源代码的根目录下建立一个文件夹存放一些编译生成的中间文件。</p>
<p><code>mkdir riscv.build</code></p>
<h4>2.3 配置编译参数</h4>
<p>通过一下指令配置编译的参数:</p>
<pre>
<code>../configure --prefix=/Python3.8.13 --build=riscv64-linux-gnu --host=riscv64-linux --target=riscv64-linux-gnu --enable-shared --enable-ipv6 --with-system-ffi ac_cv_file__dev_ptmx=0 ac_cv_file__dev_ptc=0 --enable-optimizations</code></pre>
<p>上面的参数我也不是很懂,有兴趣的可以参考这个网址: https://docs.python.org/zh-cn/3.10/using/configure.html</p>
<p><strong>注意在要想配置python3.8.13版本,需要首先在电脑上按照python3.8才可以配置成功</strong>,否则会报错。当时报的错误没有记录下来,这里就不贴图了。</p>
<h3>3. 生成相关文件并导入开发板</h3>
<p>然后调用指令</p>
<pre>
<code>make
sudo make install</code></pre>
<p>编译的时间会比较久,当编译完成后会在根目录下生产一个Python3.8.13的文件夹,这个文件夹包括所有要用到的东西。将这个文件夹内的东西复制到开发板上,然后在PATH和LD_LIBRARY_PATH两个变量里加入python执行文件的路径和lib的路径就可以使用了。</p>
<p>添加方式是修改 /etc/profile文件,在文件的最后加上</p>
<pre>
<code>export PATH=$PATH:/usr/python3.8/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/python3.8/lib</code></pre>
<p>然后通过source命令生效。</p>
<p><code>source /etc/profile</code></p>
<p>现在就可以使用python3指令了。</p>
<h3>4. 效果</h3>
<p>使用python3,即可在终端打开python的命令行。</p>
<p></p>
<p></p>
<p>编译后的文件夹将近300M,还没有权限上传,各位可以自行编译试试。</p>
</div>
<p> </p>
<p>楼主厉害,谢谢分享。</p>
sonicfirr 发表于 2022-4-6 12:42
楼主厉害,谢谢分享。
<p>我也是Linux的初学者{:1_137:}</p>
页:
[1]