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

时间:2021-01-14 19:26:43

标签: python conda corruption miniconda

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

在尝试运行当天之前运行的特定脚本或命令(例如 jupyter 实验室)后会发生什么,我会随机收到类似以下内容的错误:

ValueError: bad marshal data (unknown type code)

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

Traceback (most recent call last):
  File "c:\users\user\miniconda3\envs\environment\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\user\miniconda3\envs\environment\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "c:\users\user\miniconda3\envs\environment\Scripts\jupyter.exe\__main__.py", line 4, in <module>
  File "c:\users\user\miniconda3\envs\environment\lib\site-packages\jupyter_core\command.py", line 18, in <module>
    from . import paths
  File "c:\users\user\miniconda3\envs\environment\lib\site-packages\jupyter_core\paths.py", line 15, in <module>
    import tempfile
  File "c:\users\user\miniconda3\envs\environment\lib\tempfile.py", line 832
    self._rmtree(ȕ&�n�gH�6�
                          ^
SyntaxError: invalid character in identifier

当我在收到此错误后查看文件时,它实际上已被切断,并插入了如上所示的随机字符。但是,这永远不会发生在脚本中间,只有在某些东西运行之后我才尝试再次运行它,或者之后我尝试运行其他东西。不知道发生了什么我不是非常精通 python。已经到了我必须每天多次重新安装的地步。

这只是我的系统吗?我使用 pycharm 作为我的 IDE,这与它有什么关系吗?我将尝试不同版本的 miniconda,但不确定这是否会起到很大作用。通过我的研究,我没有找到对这个问题的太多支持。

1 个答案:

答案 0 :(得分:0)

我在使用 Miniforge(python 3.7.10、conda 4.10.3、windows 10)时遇到了同样的问题。 某些模块的 .py 文件的最后一行被随机损坏。

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

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

  • 删除lib\brokenmodule\__pycache__中的缓存文件
  • 删除pkgs\brokenmodule-version-build\中的源文件夹
  • 运行conda update brokenmodule --force-reinstall