在Python中将路径追加到LD_库_路径
我一直在使用python3通过在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,它似乎不是这样工作的 我遇到
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
,它似乎不是这样工作的
我遇到以下错误:
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
。