我们在网络驱动器上有一个python脚本+相关模块。我们正在同时从多台计算机运行此脚本。
有时其中一个随机失败,错误如下:
Traceback (most recent call last):
File "\\chifs02.int.tt.local\group\Development\Server Products\Automation\repos\mksutils\fetch.py", line 16, in <module>
from scripts import write_set_environment
NameError: Can't find file for module scripts
(filename \\chifs02.int.tt.local\group\Development\Server Products\Automation\repos\mksutils\scripts.pyc)
我注意到的一个奇怪之处是.py文件最后一次修改是在几个月前,但是.pyc只有几个小时,尽管从那时起至少每天都在运行。
我以前从未见过这个
NameError: Can't find file for module scripts
错误,google也没什么帮助。所有相关计算机都在运行Windows。
最佳答案
不要这样做,因为“that”是指有多台计算机试图使用同一个.pyc。
pyc被修改的可能原因是您可能在不同的计算机上有稍微不同的python版本。一个是编写它的.pyc版本,另一个是编写它自己的版本。
当不同的计算机同时尝试处理同一个.pyc文件时,奇怪的错误是可能的,这一点我一点也不吃惊。这是比赛条件的邀请,因为没有使用锁定机制。
请让每个系统在运行脚本之前将其复制到本地,或者禁用.pyc generation(-b命令行标志或设置pythondontwritebytecode环境变量)。
关于python - 通过网络并发运行python脚本。这个可以吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5995467/