【发布时间】:2021-12-20 02:12:00
【问题描述】:
我想知道是否可以运行每个线程都有自己的环境变量。
我目前正在使用环境变量来设置我的代理,如下所示:
os.environ["HTTP_PROXY"] = proxy["http"]
os.environ["HTTPS_PROXY"] = proxy["https"]
但我注意到每个线程只会使用上次设置的代理。我无法为此目的使用 requests 库。
有没有一种方法可以在不为每个线程使用requests.Session() 的情况下实现这一目标?
【问题讨论】:
-
这可能就是你要找的东西:stackoverflow.com/questions/38348556/…
-
出于好奇,为什么?环境变量从来都不是线程间通信的手段。它们是作为程序外部的东西传递配置信息的一种方式。如果您使用的库强制您使用环境作为传入参数的唯一方法,请谨慎操作!这可能表明该库不是线程安全的。
标签: python multithreading python-requests environment-variables proxies