记录 aarch 平台,python3 导包失败的解决步骤
背景:离线安装了aarch平台的python3的 Shapely == 1.7.1 的 安装包,线上import 的时候老是失败,把 libgeos_c.so 也都复制到相应文件夹了,并且设置了 ST_DATA_LIB_PATH,还是不行
报错如下:
解决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/,并且加上可执行权限
解决!