在Python中导入Zookeeper libzookeeper_mt.so.2时出错
我在用Python导入一个.so文件时遇到了问题……我把这个内容加到了我的 /etc/bashrc
文件里,然后用 source
命令让它重新加载……但到现在为止还是没成功……
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
这个文件确实存在于 /usr/local/lib/lobzookeeper_mt.so.2
这个路径下。
File "build/bdist.linux-x86_64/egg/zookeeper.py", line 7, in <module>
File "build/bdist.linux-x86_64/egg/zookeeper.py", line 6, in __bootstrap__
ImportError: libzookeeper_mt.so.2: cannot open shared object file: No such file or directory
我现在不知道该怎么办,有没有人能告诉我我哪里做错了?顺便说一下,我用的是64位的Centos 6。
3 个回答
1
这里有两种方法可以设置一个叫做LD_LIBRARY_PATH的环境变量,简单来说就是告诉系统去哪里找一些库文件。
- 临时方法:你可以在终端里输入这条命令:
export LD_LIBRARY_PATH=/usr/local/lib
。这样做只会在当前的终端会话中有效,关闭终端后就失效了。 - 永久方法:如果你想让这个设置一直有效,可以编辑一个叫做.bashrc的文件。这个文件在你的根目录下(/root/.bashrc)。你需要在里面添加以下内容:
export LD_LIBRARY_PATH=/usr/local/lib
。这样每次打开终端时,系统都会自动加载这个设置。
2
你可以试试这个命令:export LD_LIBRARY_PATH=/usr/local/lib
,它可能会帮你解决问题。
2
当你尝试加载一个库的时候,如果这个库依赖的某个文件找不到,你可能会看到一个让人困惑的错误提示:“没有这样的文件或目录”。这时候,你可以运行 ldd
命令:
ldd /path/to/your/library.so
然后查看输出中是否有“未找到”的字样,这样就能确认是不是这个问题了。