Python 创建具有不同环境变量的对象

Python 创建具有不同环境变量的对象,python,multithreading,parallel-processing,environment-variables,Python,Multithreading,Parallel Processing,Environment Variables,我希望每次使用不同的“名称”(名称为“int”输入)创建对象时,我的对象都使用不同的环境变量运行。我试着打电话如下: class SomeThing(object): def __init__(self, name): self.name = name #to parallelizing os.environ['FOO'] = "http://localhost:1135" + str(self.name) + '/' def r

我希望每次使用不同的“名称”(名称为“int”输入)创建对象时,我的对象都使用不同的环境变量运行。我试着打电话如下:

class SomeThing(object):
    def __init__(self, name):
        self.name = name
        #to parallelizing
        os.environ['FOO'] = "http://localhost:1135" + str(self.name) + '/'

    def run(self):
        ...

但两个线程都在使用some2的环境变量(第一个创建的对象的变量)。

问题已经解决,下面是代码:

some2 = Something(9)
some1 = Something(1)

#job2 = lambda: some2.run()
t2 = threading.Thread(target=some2.run(), name = 'job2')
t2.start()
#job1 = lambda: some1.run()
t1 = threading.Thread(target=some1.run(), name = 'job1')
t1.start()

环境变量是每个进程的,而不是每个线程的。您需要环境变量做什么?如果您需要与线程关联的信息,并且每个线程都与
某物的特定实例关联,你为什么不把你需要的信息作为
Something
-实例的一个属性呢?@DanielRoseman谢谢,你的评论解决了我的问题。使用的库不能与共享同一命名空间的多个从机建立单独的连接。为了发送特定的命令,我需要使用不同的env运行它们。变量@劳伦特波特酒店 class SomeThing(object): def __init__(self, name): self.name = name def run(self): #to parallelizing os.environ['FOO'] = "http://localhost:1135" + str(self.name) + '/'
some2 = Something(9)
some1 = Something(1)
t2 = multiprocessing.Process(target=some2.run())
t1 = multiprocessing.Process(target=some1.run())
t1.start()
t2.start()