记录 aarch 平台,python3 导包失败的解决:Couldnot find lib geos_c or load any of its variants ‘libgeos_c.so‘

记录 aarch 平台,python3 导包失败的解决步骤

背景:离线安装了aarch平台的python3的 Shapely == 1.7.1 的 安装包,线上import 的时候老是失败,把 libgeos_c.so 也都复制到相应文件夹了,并且设置了 ST_DATA_LIB_PATH,还是不行

报错如下:
记录 aarch 平台,python3 导包失败的解决:Couldnot find lib geos_c or load any of its variants ‘libgeos_c.so‘_第1张图片

解决1:修改 Linux 查找动态库的配置

1、vi /etc/ld.so.conf,增加:
/usr/lib64

2、ldconfig,使修改生效

结果还是不行

解决2:使用ldd 定位 libgeos_c.so.1 为啥导入失败的问题

# ldd本身不是一个程序,而仅是一个shell脚本:ldd可以列出一个程序所需要得动态链接库(so),-v"或"--verbose"选项来显示所依赖的动态连接库的尽可能的详细信息。

ldd 需要检查的可执行文件,


结果可以看出来:

1、是由于该so文件(软链或者源文件)没有可执行权限,所以:chmod a+x /usr/lib64/libgeos_c.so.1

2、缺少相关依赖:/usr/lib64/libgeos-3.4.2.so,所以:从离线 环境 导入libgeos-3.4.2.so到 线上的/usr/lib64/,并且加上可执行权限

记录 aarch 平台,python3 导包失败的解决:Couldnot find lib geos_c or load any of its variants ‘libgeos_c.so‘_第2张图片
解决!

你可能感兴趣的:(Linux,后端,linux)