更改当前进程环境的LD_LIBRARY_PATH

2024-02-28

是否可以更改当前进程的环境变量?

更具体地说,在我想更改的 python 脚本中LD_LIBRARY_PATH因此,在导入模块“x”时,该模块依赖于某些xyz.so, xyz.so取自我在 LD_LIBRARY_PATH 中给定的路径

还有其他方法可以动态更改加载库的路径吗?

Edit:我想我需要提到我已经尝试过类似的事情 os.environ["LD_LIBRARY_PATH"] = mypath os.putenv('LD_LIBRARY_PATH', mypath)

但这些会修改环境。对于生成的子进程,而不是当前进程,并且模块加载不考虑新的 LD_LIBRARY_PATH

Edit2,所以问题是我们是否可以更改环境或其他东西,以便库加载器看到它并从那里加载?


原因

os.environ["LD_LIBRARY_PATH"] = ...

不起作用很简单:这个环境变量控制动态加载器的行为(ld-linux.so.2在Linux上,ld.so.1在 Solaris 上),但加载程序只查看LD_LIBRARY_PATH在进程启动时一次。改变值LD_LIBRARY_PATH在当前流程中after该点没有影响(就像答案一样)this https://stackoverflow.com/questions/856116/changing-ldlibrarypath-at-runtime-for-ctypes问题说)。

你确实有一些选择:

A. 如果您知道您将需要xyz.so from /some/path,并从头开始控制python脚本的执行,然后只需设置LD_LIBRARY_PATH根据您的喜好(在检查是否尚未如此设置后),然后重新执行自己。这是什么Java does.

B、可以导入/some/path/xyz.so通过其绝对路径before输入x.so。当你导入时x.so,加载器会发现它已经加载了xyz.so,并且将使用已经加载的模块而不是再次搜索它。

C. 如果你建造x.so你自己,你可以添加-Wl,-rpath=/some/path到它的链接线,然后导入x.so将导致加载器在中查找依赖模块/some/path.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改当前进程环境的LD_LIBRARY_PATH 的相关文章

随机推荐

  • 将访问过的链接颜色设置为未访问过的链接的颜色(P.S.不是常见问题)

    我需要将 a visited CSS 设置为whatever正常 a 设置的颜色 我希望能够告诉浏览器的是 对于已访问的链接 使用与未访问的链接相同的颜色 无论它是什么颜色 我需要这样做不指定特定颜色 例如 如果出现一些奇怪的浏览器 使用
  • 如何在hadoop中运行jar文件?

    我使用 java 文件创建了一个 jar 文件这个博客 http java dzone com articles hadoop basics creating使用以下语句 javac classpath usr local hadoop h
  • 具有动态变化内容的 QScrollArea

    I have a QScrollArea with some buttons in it like shown on the picture 布局的思路是 1 左右按钮太宽时应使用滚动按钮 2 滚动区域按钮数量可动态改变 3 应利用任何可用
  • 捕获 ASP.NET WebService 上的 WebMethod 引发的自定义异常

    我有一个经典的 asp net Web 服务 asmx 和其中的一个 Web 方法 我需要在 Web 方法中针对某些情况抛出自定义异常 并且需要在调用 Web 服务方法时捕获特定的自定义异常 WebService Namespace htt
  • 从 Google API 获取点击次数

    我试图找到一种方法来做到这一点 但没有成功 我正在寻找一种方法来找出搜索获得的点击次数 并且我不想手动执行此操作 或者通过 html 代码使用正则表达式搜索 当然 Google API 必须有一个简单的方法来做到这一点 有人知道其中一个吗
  • 无法启动 OpenDebug,因为需要 Mono(或 Mono 版本 >= 3.10.0)

    我已在 ubuntu 14 0 lts 中下载并安装 vscode 并包含现有的 node js 项目 首先我认为我与 vscode 相关的是调试我的应用程序 因为我必须去调试 ctrl shift D 惩罚 使用 name 和 progr
  • 如何在 asp.net 中获取服务器/网站 IP 地址?

    当用户请求进来时 我可以使用 Context Request UserHostAddress 来获取用户的 IP 地址 如何在运行时获取网站 服务器的IP地址 我有一些报告代码可供同一服务器上的多个网站使用 并且每个网站使用不同的 IP 地
  • 将 XML JUnit 报告转换为 HTML [重复]

    这个问题在这里已经有答案了 到目前为止 我一直在为 Protractor 测试生成 junit xml 报告 但随着测试的增加 我需要获取测试的 HTML 报告 我们可以使用 XSLT 将 junit xml 报告更改为 HTML 吗 如果
  • Django 设置存储引擎和默认字符集

    从我的创建我的表models py 我不知道该怎么做两件事 我想指定MySQL创建我的一些表InnoDB 一些作为MyISAM 我该怎么做 我还想指定我的桌子DEFAULT CHARSET as utf8 我该怎么做 这是我跑步时看到的sy
  • 使用 Selenium Webdriver 处理 Windows 身份验证

    C 中基于 Selenium Webdriver 的测试必须使用 Windows 身份验证登录 我尝试了几种方法 Driver SwitchTo Alert Driver FindElement By Id UserName SendKey
  • 使用python连接ftp服务器

    我尝试使用 python 代码连接到手机中的 ftp 服务器 但出现错误 Code import ftplib server ftplib FTP server connect 192 168 135 101 5556 server log
  • Flask.url_for() 错误:尝试在未推送应用程序上下文的情况下生成 URL

    我有一个简单的应用程序 我试图按照以下方式重定向图标 http flask pocoo org docs 0 10 patterns favicon http flask pocoo org docs 0 10 patterns favic
  • 如何防止 VS WPF 设计器为工具箱中的每个对象添加边距

    当我将控件从工具箱拖到 Visual Studio 2008 WPF 设计图面上时 它会根据我放置控件的位置和默认大小设置边距 有什么办法可以阻止 VS 设置这些吗 当我将控件放在堆栈面板上时 我希望它流入面板中的现有控件 Thanks 我
  • 只有视频,没有音频

    这很奇怪 但这是我的项目要求 在我的项目中 我想播放带有音频抑制的视频 对于音频我们有另一个计划 所以我可以使用VideoView来播放视频 但这也播放该文件的音频 这对我来说不是必需的 那么我怎样才能实现这个奇怪的要求 即播放没有音频的视
  • 相当于 C# 异步套接字中的 Peek?

    我习惯使用同步套接字 为了处理尚未完全到达的消息 我将前 4 个字节设置为消息的预期长度 然后我会用Socket Receive tcpRecv 1024 SocketFlags Peek 查看消息而不将其从缓冲区中拉出 如果所有这些都在那
  • 在 Ionic ngx-translate 中,“Http”类型的参数不可分配给“Http”类型的参数

    我正在开发一个 Ionic 2 移动应用程序 并且想要使用 ngx translate 功能 按照教程 我将在应用程序模块中导入必要的文件 如下所示 import TranslateModule TranslateLoader from n
  • 在 IIS 6 / ASP.NET Web 表单中记录服务器范围的请求数据(包括 POST 数据)

    这是大局 我们正在 IIS 6 中运行一台服务器 该服务器托管多个网站和应用程序 并且我们正在将整个服务器迁移到设置略有不同的不同数据中心 我们已经通知了我们的用户并更新了我们的 DNS 信息 这样理论上每个人都会从第一天起就高兴地访问新服
  • Python(Pandas):何时使用替换、映射、转换?

    我试图清楚地了解应该使用 pandas 中的以下函数来进行哪种类型的数据转换 replace map 转换 有人可以提供一些清晰的例子 以便我更好地理解它们吗 非常感谢 据我了解 Replace 用于处理缺失值 transform 用于执行
  • 如何调试“ast.literal_eval”中的错误?

    我使用将数据写入文件pprint PrettyPrinter https docs python org 2 library pprint html我正在尝试使用它来阅读它ast literal eval https docs python
  • 更改当前进程环境的LD_LIBRARY_PATH

    是否可以更改当前进程的环境变量 更具体地说 在我想更改的 python 脚本中LD LIBRARY PATH因此 在导入模块 x 时 该模块依赖于某些xyz so xyz so取自我在 LD LIBRARY PATH 中给定的路径 还有其他