缘起

安装python的包Rtree(Rtree-0.8.2),但需要先安装C语言依赖包spatialindex-src(spatialindex-src-1.8.5)。在安装完spatialindex-src后,再安装Rtree过程中出现问题:

dimite@ubuntu:~/wzh/Rtree-0.8.$ python setup.py build
Traceback (most recent call last):
File "setup.py", line , in <module>
import rtree
File "/home/dimite/wzh/Rtree-0.8.2/rtree/__init__.py", line , in <module>
from .index import Rtree
File "/home/dimite/wzh/Rtree-0.8.2/rtree/index.py", line , in <module>
from . import core
File "/home/dimite/wzh/Rtree-0.8.2/rtree/core.py", line , in <module>
rt = ctypes.CDLL(lib_name)
File "/usr/lib/python2.7/ctypes/__init__.py", line , in __init__
self._handle = _dlopen(self._name, mode)
OSError: libspatialindex_c.so.: cannot open shared object file: No such file or directory

错误日志提示找不到动态链接库 libspatialindex_c.so.4,利用命令寻找动态链接库

dimite@ubuntu:~/wzh/Rtree-0.8.$ sudo find / -name libspatialindex_c.so.
[sudo] password for dimite:
/usr/local/lib/libspatialindex_c.so.
/home/dimite/wzh/spatialindex-src-1.8./.libs/libspatialindex_c.so.

需要四个动态链接库文件,都在/usr/local/lib中

dimite@ubuntu:~/wzh/Rtree-0.8.$ ls /usr/local/lib | grep libspatialindex | grep so
libspatialindex_c.so
libspatialindex_c.so.
libspatialindex_c.so.4.0.
libspatialindex.so
libspatialindex.so.
libspatialindex.so.4.0.

解决

方法一:
把动态链接库所在的路径添加到/etc/ld.so.conf中

include /etc/ld.so.conf.d/*.conf
/usr/local/lib/

然后更新/etc/so.cache

sudo  ldconfig

方法二:
同方法一,把具体的so链接库写到/etc/ld.so.conf.d/下的conf文件中

/usr/local/lib/

方法三:
设置$LD_LIBRARY_PATH=库所在目录(多个目录用:分隔)

结论

以root身份把库路径加入到/etc/ld.so.conf或在/etc/ld.so.conf.d中创建特定的.conf文件,运行ldconfig更新动态链接库

设置$LD_LIBRARY_PATH=库所在目录(多个目录用:分隔)

深究

python怎么调用c的库

python的setup.py 怎么执行,里边没有看到具体的build、install字眼

ctype里的__init__.py又是怎么和动态链接库a联系在一起

【未完待补充】linux 设置So动态库链接路径的更多相关文章

  1. Linux下包含头文件的路径问题与动态库链接路径问题

    C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径.自己指定的路径就不说了,这里说明一下系统自动搜索的路径. [1 ...

  2. linux和windows动态库加载路径区别

    # linux和windows动态库加载路径区别 ### 简介------------------------------ linux加载动态库的路径是系统目录/lib和/usr/lib.- wind ...

  3. 【转】分析Linux和windows动态库

    原文地址:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Lin ...

  4. Linux和windows动态库

    转载:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html 态链接库技术实现和设计程序常用的技术,在Windows和Linux系 统中 ...

  5. 【转载】Linux动态库搜索路径的技巧

    转自:http://soft.chinabyte.com/os/232/11488732_2.shtml 众所周知,Linux动 态库的默认搜索路径是/lib和/usr/lib.动态库被创建后,一般都 ...

  6. Linux动态库搜索路径的技巧

    众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib.动态库被创建后,一般都复制到这两个目录中.当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径 ...

  7. Linux下动态库查找路径的问题

    说到和动态库查找路径相关的问题,总体上可以分为两类:    第一类: 通过源代码编译程序时出现的找不到某个依赖包的问题,而如果此时你恰好已经按照它的要求确确实实.千真万确.天地良心地把依赖库给装好了, ...

  8. 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH

    谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH  PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...

  9. 谈谈Linux下动态库查找路径的问题

    学习到了一个阶段之后,就需要不断的总结.沉淀.清零,然后才能继续"上路".回想起自己当年刚接触Linux时,不管是用源码包编译程序,还是程序运行时出现的和动态库的各种恩恩怨怨,心里 ...

随机推荐

  1. Nginx 笔记与总结(7)Location:正则匹配

    在 /usr/local/nginx/conf/nginx.conf 的默认 server 段中,保留默认的 location 信息(之前测试的 location 配置删除): location / ...

  2. Web 在线文件管理器学习笔记与总结(19)上传文件

    dir.func.php 中添加方法: /* 上传文件 */ function uploadFile($fileInfo,$path,$allowExt = array('jpg','jpeg','p ...

  3. PHP+jQuery 列表分页类 ( 支持 url 分页 / ajax 分页 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.mi ...

  4. python 线程使用

    ################# 线程演示脚本  ####################### #coding=utf-8import threadingfrom time import ctim ...

  5. [转]漫谈数据中心CLOS网络架构

    http://djt.qq.com/article/view/238 1.数据中心网络架构挑战 随着技术的发展,数据中心的规模越来越大,一个数据中心的服务器容量从几年前的几千台服务器发展到今天的几万甚 ...

  6. Nginx 上的 php-fpm 资源侵占问题

    测试人员向我们反映:在Facebook平台的游戏比其它平台的游戏明显更慢.我询问,是不是因为FQ网络原因.他们说:不是,其它游戏也比较流畅.使用httpwatch查看了http请求,发现api.php ...

  7. apex-utility-ai-unity-survival-shooter

    The AI has the following actions available: Action Function Shoot Fires the Kalashnikov Reload Reloa ...

  8. 【转】PHP框架性能测试报告 - ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5

    作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情. 用ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情.不 ...

  9. CentOS 6.5 源码安装MySQL5.6.26

    1:下载安装cmake (mysql5.5以后是通过cmake来编译的) 2:创建mysql的安装目录及数据库存放目录 #mkdir /usr/mysql                 //安装my ...

  10. Windows下mysql自动备份的最佳方案

    网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...