当多线程内容存在【运行python代码】时,似乎会导致重复写入环境变量的问题?

BUG反馈 · 700 次浏览
blanka 创建于 13小时6分钟前

最近总是开机一段时间后cmd无法获取环境变量,排查后发现是在使用了多线程运行python的动作后,会出现将设置的python路径反复写入环境变量


回复内容
CL 10小时1分钟前
#1

详细说一下看看。具体发生了什么现象,又是如何判断的?

blanka 回复 CL 5小时9分钟前 :

在cmd运行set输出环境变量的全文。刚开机时path环境变量无重复,在运行数次我的动作https://getquicker.net/Sharedaction?code=f3effa4e-e4a7-497e-dc96-08dbd4c004af后,发现path出现了大量重复的python路径,直到环境变量过长超出cmd识别范围。这个路径也是quicker的python路径。重启后回复原状。

我怀疑是不是因为我的动作设置的【当多线程的一个线程获得符合要求的结果后,会直接终止整个多线程所在的子程序】导致的运行python模块退出不正常,未清除写入的环境变量就退掉了?

blanka 最后更新于 5小时5分钟前
blanka 回复 CL 4小时56分钟前 :

测试发现即使不使用强制退出机制(去除所有的停止模块),也会有python路径写入后未清除的现象

CL 回复 blanka 2小时48分钟前 :
我核对了一下代码,Python脚本模块确实会设置环境变量,在步骤结束后会恢复。 多线程确实可能会导致这个问题。这里不适合使用在多线程的情况,不仅会造成重复的PATH内容,可能还在py执行之前被前面执行完的恢复掉。
blanka 回复 CL 1小时16分钟前 :

好吧,请问这种情况应该怎么进行并行操作呢?毕竟我这里涉及网络IO,如果不并行还是挺浪费时间的。不使用python模块,而是将python代码存储为文件,然后通过cmd多线程运行是否可行呢?

blanka 最后更新于 1小时15分钟前
回复主贴