【发布时间】:2011-09-26 11:53:48
【问题描述】:
有没有办法设置指定在运行时 Python 查找共享库的位置?
我有位于fontforge_bin 的fontforge.so 并尝试了以下操作
os.environ['LD_LIBRARY_PATH']='fontforge_bin'
sys.path.append('fontforge_bin')
import fontforge
得到
ImportError: fontforge_bin/fontforge.so: cannot open shared object file: No such file or directory
在fontforge_bin/fontforge.so 上执行ldd 会得到以下结果
linux-vdso.so.1 => (0x00007fff2050c000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f10ffdef000)
libc.so.6 => /lib/libc.so.6 (0x00007f10ffa6c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f110022d000)
【问题讨论】:
-
如果我在运行脚本之前执行
export LD_LIBRARY_PATH=fontforge_bin,这将有效,现在我想从脚本内部设置它 -
使用
sys.path.append是正确的方法,从错误消息中可以看出,它确实尝试打开它。我建议您使用目录的完整路径名,而不是相对路径名。