简体   繁体   English

在 Python 中将路径附加到 LD_LIBRARY_PATH

[英]Append path to LD_LIBRARY_PATH in Python

I have been using python3 to set environment variables using os.environ() .我一直在使用 python3 使用os.environ()设置环境变量。 I was setting LD_LIBRARY_PATH to a path, which is basically overwriting LD_LIBRARY_PATH using code os.environ["LD_LIBRARY_PATH"] = PATH .我正在将 LD_LIBRARY_PATH 设置为一个路径,这基本上是使用代码os.environ["LD_LIBRARY_PATH"] = PATH覆盖 LD_LIBRARY_PATH 。 But I want to add path using separator : .但我想使用分隔符添加路径:

I am trying to add path using string concatenation with separator using os.environ["LD_LIBRARY_PATH"] = os.environ["LD_LIBRARY_PATH"] + ":" + PATH , It doesn't seems to be working like this.我正在尝试使用os.environ["LD_LIBRARY_PATH"] = os.environ["LD_LIBRARY_PATH"] + ":" + PATH使用字符串连接和分隔符来添加路径,它似乎不是这样工作的。

I am getting following error :我收到以下错误:

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'

Let me know what I am doing wrong or what should be done.让我知道我做错了什么或应该做什么。

The KeyError: 'LD_LIBRARY_PATH' indicates that such key does not exist in your os.environ dictionary. KeyError: 'LD_LIBRARY_PATH' 表示您的 os.environ 字典中不存在这样的键。 Thus you cannot append anything to the value of a non-existing key.因此,您不能向不存在的键的值附加任何内容。

You should explicitly set a PATH first, then append if you require to do so.您应该首先显式设置 PATH,然后在需要时追加。 I'd suggest you add a check like if PATH not in os.environ().keys() then set it.我建议您添加一个检查,例如if PATH not in os.environ().keys()然后设置它。

Python lets you easily specify a default value. Python 可让您轻松指定默认值。

old = os.environ.get("LD_LIBRARY_PATH")
if old:
    os.environ["LD_LIBRARY_PATH"] = old + ":" + PATH
else:
    os.environ["LD_LIBRARY_PATH"] = PATH

You can accomplish the same with a try / except but it's not really faster or cleaner than this.你可以用try / except来完成同样的事情,但它并不比这更快或更干净。

The key here is dict.get(value) which unlike dict[value) returns None instead of raising a KeyError .这里的关键是dict.get(value) ,它不像dict[value)返回None而不是引发KeyError It also allows you to specify a different value than None as its second argument.它还允许您指定与None不同的值作为其第二个参数。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM