我想创建两个(或多个)线程,在每个线程中执行不同的外部程序,比如
问题是:我该如何设置
PS. 我尝试过在这里描述的方式下设置
aaa
和bbb
。这些外部程序需要位于不同目录中的库,比如/aaalib
和/bbblib
,因此我必须在执行它们之前设置环境变量LD_LIBRARY_PATH
。我想避免使用shell,所以像执行LD_LIBRARY_PATH=/aaalib aaa
这样的解决方案不好。问题是:我该如何设置
os.environ ['LD_LIBRARY_PATH']
,使得不同的线程具有不同的值?PS. 我尝试过在这里描述的方式下设置
os.environ ['...'] = threading.local()
,但它以以下方式失败:In [1]: import os, threading
In [2]: os.environ['LD_LIBRARY_PATH'] = threading.local()
-----------------------
TypeError Traceback (most recent call last)
<ipython-input-2-a2c8ef0b901b> in <module>()
----> 1 os.environ['LD_LIBRARY_PATH'] = threading.local()
/usr/lib/python2.7/os.pyc in __setitem__(self, key, item)
471 self.data = environ
472 def __setitem__(self, key, item):
--> 473 putenv(key, item)
474 self.data[key] = item
475 def update(self, dict=None, **kwargs):
TypeError: must be string, not thread._local