于2024.2.29进行编辑,因为在服务器中修改/lib/x86_64-linux-gnu/libstdc++.so.6没有权限,又找到了新的方法,见第二模块。
一、在服务器的其他文件夹中找到最高版本为6.0.28,其中也没有GLIBCXX_3.4.29。故从网友处下载libstdc++.so.6.0.29链接原有libstdc++.so.6即可使用。
过程:
1.运行提示错误:ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /usr/local/anaconda3/envs/Gesture/lib/python3.9/site-packages/google/protobuf/pyext/_message.cpython-39-x86_64-linux-gnu.so)
2.下载libstdc++.so.6.0.29到本地,并保存至服务器地址:/usr/local/anaconda3/lib下。
3.依次运行如下语句,路径需要改为自己的路径。大概意思就是移除/usr/local/anaconda3/lib下的libstdc++.so.6,把刚才放到该路径下的libstdc++.so.6.0.29链接上。
rm /usr/local/anaconda3/lib/libstdc++.so.6
ln -s /usr/local/anaconda3/lib/libstdc++.so.6.0.29 /usr/local/anaconda3/lib/libstdc++.so.6
4.再通过该命令就可以查看到已经有GLIBCXX_3.4.29了。
strings /usr/local/anaconda3/lib/libstdc++.so.6 | grep GLIBCXX_3.4.29
libstdc++.so.6.0.29下载地址(ali云盘)
二、升级权限不够,可以降低protobuf版本
该过程原作者:https://blog.csdn.net/u013354678/article/details/135296108
过程:
1.在报错中可以看到from goole.protobuf.pyext这个包引起的报错。
2.先卸载本地protobuf
pip uninstall protobuf
3.再安装更低版本的protobuf
pip install protobuf==3.20.0