0
当我通过SSH登录远程服务器,我看到LD_LIBRARY_PATH是:使用织物改变LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
:/usr/local/lib
当我在Python中使用的织物,以运行在织物运行API相同的代码,则结果是空的。
from fabric.api import *
def test():
run("echo $LD_LIBRARY_PATH")
甚至当我尝试使用结构更改LD_LIBRARY_PATH时,它根本不起作用。
from fabric.api import *
def test():
run("echo $LD_LIBRARY_PATH")
run("export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH")
有谁知道为什么?
这里的答案很可能解释了为什么:http://stackoverflow.com/questions/216202/why-does-an-ssh-remote-command-get-fewer-environment-variables-then-when-run -man – 2013-02-21 09:19:08
在构造ssh时,您获得的环境变量要少得多。从结构中导出LD_LIBRARY_PATH后,echo是否返回您设置的新路径? – 2013-02-21 09:19:54
我想,每个'run'函数都使用一个到远程服务器的单独链接,所以LD_LIBRARY_PATH在下一次运行时被设置为空。 – holsety 2013-02-21 09:25:06