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