Python不断损坏并需要重新安装



我在windows 10上使用Miniconda 64位版本4.9.2。由于某种原因,我的python安装在运行脚本后总是损坏,有时它会随机发生,有时似乎是特定的脚本导致它损坏。这不会发生在我的其他队友,虽然他们运行类似的环境。

将会发生的是,在尝试运行一个特定的脚本或命令(例如jupyter lab)之前工作的那天,我将随机得到一个错误,类似于以下内容:

ValueError: bad marshal data (unknown type code)

通常它似乎涉及到我在堆栈跟踪中使用的库,但我不认为它是一个特定的库,因为它在堆栈跟踪中会不时出现不同的库,我猜在那一刻损坏了什么。我已经尝试删除pycache文件的特定库出错,但这告诉我我认为是问题的根源,文件被损坏和覆盖随机字符。查看下面删除.pyc文件并尝试再次运行后的错误堆栈跟踪示例:

Traceback (most recent call last):
  File "c:usersuserminiconda3envsenvironmentlibrunpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:usersuserminiconda3envsenvironmentlibrunpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "c:usersuserminiconda3envsenvironmentScriptsjupyter.exe__main__.py", line 4, in <module>
  File "c:usersuserminiconda3envsenvironmentlibsite-packagesjupyter_corecommand.py", line 18, in <module>
    from . import paths
  File "c:usersuserminiconda3envsenvironmentlibsite-packagesjupyter_corepaths.py", line 15, in <module>
    import tempfile
  File "c:usersuserminiconda3envsenvironmentlibtempfile.py", line 832
    self._rmtree(ȕ&�n�gH�6�
                          ^
SyntaxError: invalid character in identifier

当我在得到这个错误后查看文件时,它实际上已经被截断,并且像上面看到的那样插入了随机字符。这从来不会发生在脚本中间,只有在某些东西运行之后,我尝试再次运行它,或者之后我尝试运行其他东西。不知道怎么回事,我不是很精通python。我每天都要重新安装好几次。

是我的系统有问题吗?我使用pycharm作为我的IDE,这有什么关系吗?我将尝试不同版本的miniconda,但不确定这是否有用。通过我的研究,我没有发现很多支持这个问题的证据。

我使用Miniforge (python 3.7.10, conda 4.10.3, windows 10)也有同样的问题。一些模块的.py文件的最后一行被随机损坏。

我注意到除了lib内容外,pkgs子文件夹中的所有.py文件都已经损坏,但是tar包中的压缩文件很好。

我找到了这个临时的解决方案:

  • 删除libbrokenmodule__pycache__
  • 缓存文件
  • 删除pkgsbrokenmodule-version-build
  • 中的源文件夹
  • run conda update brokenmodule --force-reinstall

最新更新