在Python中将路径追加到LD_库_路径

在Python中将路径追加到LD_库_路径,python,environment-variables,Python,Environment Variables,我一直在使用python3通过os.environ()设置环境变量。我将LD_LIBRARY_PATH设置为PATH,这基本上是使用codeos.environ[“LD_LIBRARY_PATH”]=PATH覆盖LD_LIBRARY_PATH。但是我想使用分隔符添加路径: 我正在尝试使用字符串连接添加路径,并使用分隔符os.environ[“LD\u LIBRARY\u path”]=os.environ[“LD\u LIBRARY\u path”]+:“+path,它似乎不是这样工作的 我遇到

我一直在使用python3通过
os.environ()
设置环境变量。我将LD_LIBRARY_PATH设置为PATH,这基本上是使用code
os.environ[“LD_LIBRARY_PATH”]=PATH
覆盖LD_LIBRARY_PATH。但是我想使用分隔符添加路径

我正在尝试使用字符串连接添加路径,并使用分隔符
os.environ[“LD\u LIBRARY\u path”]=os.environ[“LD\u LIBRARY\u path”]+:“+path
,它似乎不是这样工作的

我遇到以下错误:

os.environ["LD_LIBRARY_PATH"] =os.environ["LD_LIBRARY_PATH"] + ":" + target_directory
 File "/usr/lib/python3.6/os.py", line 669, in __getitem__
  raise KeyError(key) from None
KeyError: 'LD_LIBRARY_PATH'

让我知道我做错了什么或应该做什么。

键错误:“LD\u LIBRARY\u PATH”表示您的os.environ字典中不存在此类键。因此,不能向不存在的键的值追加任何内容


您应该先显式设置路径,然后根据需要附加路径。我建议您添加一个类似于
的检查,如果PATH不在os.environ().keys()中,则设置它。

Python允许您轻松指定默认值

old = os.environ.get("LD_LIBRARY_PATH")
if old:
    os.environ["LD_LIBRARY_PATH"] = old + ":" + PATH
else:
    os.environ["LD_LIBRARY_PATH"] = PATH
除了
之外,您还可以通过
尝试
/
来实现同样的效果,但它并不比这更快或更干净


这里的键是
dict.get(value)
,与
dict不同[value)
返回
None
而不是引发
KeyError
。它还允许您指定一个不同于
None
的值作为其第二个参数。

当您说它似乎不起作用时,您的意思是它返回了一个错误还是它只是不附加路径。您还可以提供一个不起作用的测试路径吗rking?您在哪个操作系统上?@FlyingTeller Ubuntu 18.04您不需要空字符串。如果未指定默认值,则默认值为
None
。在任何情况下,对于这种情况,通常最好使用
None