是否有可能改变当前流程的环境变量?
更具体地说,我想改变python脚本,LD_LIBRARY_PATH以便在导入依赖于某些模块的模块'x'时xyz.so,xyz.so取自LD_LIBRARY_PATH中的给定路径
有没有其他方法动态更改库加载的路径?
编辑:我想我需要提一下,我已经尝试过像os.environ这样的东西["LD_LIBRARY_PATH"] = mypath os.putenv('LD_LIBRARY_PATH',mypath)
但这些修改了env.对于生成的子进程,而不是当前进程,并且模块加载不考虑新的LD_LIBRARY_PATH
Edit2,所以问题是我们可以改变环境或其他东西,以便库加载器看到它并从那里加载吗?
我正在尝试覆盖 Python 中的环境变量。我可以读取该值,然后写入该值并打印更新后的值。但是,如果我检查命令行中的值,它仍然是原始值。这是为什么?
首先,我创建变量
export MYVAR=old_val
Run Code Online (Sandbox Code Playgroud)
我的测试脚本 myvar.py
#!/usr/bin/env python3
import os
print (os.environ['MYVAR'])
os.environ['MYVAR'] = "new_val"
print (os.environ['MYVAR'])
Run Code Online (Sandbox Code Playgroud)
输出
$ ./myvar.py
old_val
new_val
$ echo $MYVAR
old_val
Run Code Online (Sandbox Code Playgroud)
如您所见,输出的最后一行仍然显示 old_val