html tool

2016年10月10日星期一

LD_LIBRARY_PATH 在python中加载问题

问题:
python使用so 要求
export LD_LIBRARY_PATH=./:../linux

是否可以在python中调用系统环境设置

结果:
参见:http://stackoverflow.com/questions/6543847/setting-ld-library-path-from-inside-python

使用如下方式可以,但本质上还是运行进程执行的环境设置
#!/usr/bin/python
import os, sys
if 'LD_LIBRARY_PATH' not in os.environ:
    os.environ['LD_LIBRARY_PATH'] = '/usr/lib/oracle/XX.Y/client64/lib'
    os.environ['ORACLE_HOME'] = '/usr/lib/oracle/XX.Y/client64'
    try:
        os.execv(sys.argv[0], sys.argv)
    except Exception, exc:
        print 'Failed re-exec:', exc
        sys.exit(1)
#
# import yourmodule
print 'Success:', os.environ['LD_LIBRARY_PATH']
# your program goes here
所以建议在py启动前使用sh设置即可。
LD_LIBRARY_PATH setst the dynamic linker path; that generally can't be changed at runtime, since it's usually cached by the dynamic linker

没有评论:

发表评论