我正在使用我们正在使用的Python脚本在团队中遇到一个奇怪的错误。用户A遇到计算机问题并需要重新映像。他们登录用户B的机器,在此期间执行一些工作。使用用户B的计算机后,用户B在运行我们的python脚本时出现以下错误:
Traceback (most recent call last):
File "C:\Scripts\script.py", line 10, in <module>
import win32com.client as win32
File "C:\Users\%USER%\AppData\Local\Programs\Python\Python35-32\lib\site-packages\win32com\client\__init.py__", line 10, in <module>
from . import dynamic
File "C:\Users\%USER%\AppData\Local\Programs\Python\Python35-32\lib\site-packages\win32com\client\dynamic.py", line 557
try.dispid, 0, invoke_type, 0, value)
^
SyntaxError: invalid syntax
用户重新安装了python和pip,为我们的环境安装了必要的软件包,但仍然遇到了问题。相对于此,win32com的dynamic.py中的行是:
557 if attr in self._olerepr_.propMapPut:
558 entry = self._olerepr_.propMapPut[attr]
559 invoke_type = _GetDescInvokeType(entry, pythoncom.INVOKE_PROPERTYPUT)
560 self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
561 return
我无法确定漫游配置文件中的哪些差异导致主用户的python文件将entry.dispid读为无效语法,尤其是在重新安装文件之后。