在networking上同时运行一个python脚本。 这个可以吗?

我们有一个networking驱动器上的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只有几个小时的时间,尽pipe从那以后至less每天都运行。

我从来没有见过这个NameError: Can't find file for module scripts以前NameError: Can't find file for module scripts错误的NameError: Can't find file for module scripts ,Google也没有太多的帮助。

涉及的所有计算机都运行Windows

Solutions Collecting From Web of "在networking上同时运行一个python脚本。 这个可以吗?"

不要这样做,“那”有多台电脑试图使用相同的.pyc(s)。

pyc被修改的可能原因是你可能在不同的计算机上有不同的Python版本。 一个人写的是.pyc的版本,另外一个人看到这不是它所期望的,而是写了自己的版本。

如果在不同的计算机同时处理相同的.pyc文件的情况下,奇怪的错误是可能的, 这是一个竞争条件的邀请,因为没有使用锁定机制。

要么每个系统都在运行脚本之前将脚本复制到本地,要么禁用.pyc生成(-B命令行标志或设置PYTHONDONTWRITEBYTECODE环境变量)。

这是一个奇怪的错误(我从来没有见过野外)。

我的假设是,它必须做一个节点重新生成pyc文件,而另一个节点试图看看它。 尝试删除pyc文件并在Python命令行上指定-B

 -B : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x