小编典典

在运行时为ctypes更改LD_LIBRARY_PATH

python

如何在运行时更新此环境变量,以便ctypes可以在任何地方加载库?我尝试了以下方法,但似乎都没有用。

from ctypes import *
os.environ['LD_LIBRARY_PATH'] = "/home/starlon/Projects/pyCFA635/lib"  
os.putenv('LD_LIBRARY_PATH', "/home/starlon/Projects/pyCFA635/lib")  
lib = CDLL("libevaluator.so")

阅读 306

收藏
2020-12-20

共1个答案

小编典典

在运行诸如Python之类的程序时,动态加载程序(ld.so.1或类似的文件)已经读取LD_LIBRARY_PATH,并且此后将不会注意到任何更改。因此,除非Python软件本身评估LD_LIBRARY_PATH并使用它来构建可能的库路径名dlopen()或要使用的等效函数,否则在脚本中设置变量将无效。

假设您说这行不通,那么似乎可以假设Python没有构建并尝试所有可能的库名;它可能仅依赖于LD_LIBRARY_PATH。

2020-12-20