感觉最近运气非常差,或者运气一直很差,为啥干啥都要踩坑呢?好的,又来坑,补吧。
因为想在树莓派4B装了Ubuntu22.04后,能配合我的触摸屏简单实现一些交互界面,所以选择在这上面安装kivy。上一次安装还是在上一次,那一次,卡了很久,放弃了。可是今天重新捣鼓树莓派的时候,用sudo apt-get install .....成功安装并运行了kivy,但是运行成功并没有达到目的,因为目前只是在系统的python3.10上安装好了,并没有安装在conda的虚拟环境中,无论怎么import,就是找不到kivy,除非加个sudo,用系统环境的编译器。
那么这就说明是有可能性的,我继续尝试在conda环境中运行示例,这一次,我终于认真看报错了。(虽然隐约记得上一次安装失败的时候报错貌似不一样,那么后文就说说我安装的流程)。
报错中的ImportError非常地显眼,把相关字样拿到百度去搜,发现了很多文章都有说明解决办法,只不过他们安装的东西都不一样。
首先放上我的报错图:
目录
报错
ImportError: /home/nowloady/app_install/miniconda3/lib/libstdc++.so.6: version 'GLIBCXX_3.4.29' not found
它的意思是说这个libstdc++.so.6内没有GLIBCXX_3.4.29,那么我们用:(把路径改为实际报错路径,这里是直接打的我的路径)
strings /home/nowloady/app_install/miniconda3/lib/libstdc++.so.6 | grep GLIBC
检查一下。发现并没有GLIBCXX_3.4.29。
开始解决
locate libstdc++.so.6
现在展示出了存在libstdc++.so.6的所有路径。
注意到,有很多路径下都有它,所以,随便选一个看看就行了,我选择/usr/lib.aarch64...路径下的进行检查。所以使用:(如果你没有看到其他地方存在的,建议先$ sudo apt-get install python3-kivy,安装好了后再locate一下,应该就有了。)
cd /usr/lib/aarch64-linux-gnu
strings libstdc++.so.6 | grep GLIBC
发现这里边就有我们缺的GLIBCXX_3.4.29,所以就把它拷到出问题的路径下替换就行了:
rm /home/nowloady/app_install/miniconda3/lib/libstdc++.so.6(删掉原来的)
cp libstdc++.so.6 /home/nowloady/app_install/miniconda3/lib(把找到的这个文件复制过去)
运行检查
首先确认是在conda的虚拟环境下。
然后运行示例:
发现没有再报错。
窗口顺利打开:
可喜可贺,可喜可贺!
参考了文章:(76条消息) 集群报错 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found_Rane0的博客-CSDN博客