当前位置: 首页 > 面试题库 >

在运行时为ctypes更改LD_LIBRARY_PATH

陶高峯
2023-03-14
问题内容

如何在运行时更新此环境变量,以便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")

问题答案:

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

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



 类似资料:
  • 问题内容: 我想向管理界面公开一些(特定于应用程序的)设置,以便用户可以轻松地更改它们,也不必重新启动Django。 我应该怎么做? 我在http://djangopackages.com/grids/g/live-setting/上签出了应用程序(btw django-constance最吸引人),但实际上所有这些应用程序所做的就是将值存储在数据库中,从而提供了一个网站。界面来更改它们,并进行缓

  • 我有个关于骆驼和计时器的问题。我有几个计时器,其中一个我想在运行时更新。我正在使用osgi blueprint来配置适当的周期。因此,我如何改变计时器(名称,我知道),例如从路由?

  • 问题内容: 每月都会生成此表。基本上所有 月度 表的表结构都是相同的。 由于仅使用不同的表名来映射同一实体将需要大量工作, 由于实体的表名毕竟具有相同的表结构,是否可以按以下方式更改实体的表名? 如果没有,您可以建议什么方法? 问题答案: 由于实体的表名毕竟具有相同的表结构,是否可以按以下方式更改实体的表名? 这实际上是不可能的,至少对于标准JPA(这不是我对非标准JPA所做的)至少不是这样,如在

  • 我正在尝试在运行时更改语言。它在API29(android版本10)上运行得很好。我需要使它在牛轧糖7.1.1(API 25)上工作。这是一场噩梦。如果我必须通过设置更改设备语言..,它可以工作。我可以看到正确的drawable和字符串(strings.xml) 我的目标是使语言切换在运行时发生。 我正在onResume()中调用activity.recreate()。屏幕变黑。我得到一个异常,它

  • 我在android和Kotlin有奇怪的问题。问题是我用类型定义变量,但在运行时更改为 我这样定义我的变量: 我使用kotlin 1.3.71和jvm 1.8。 更新0: