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

问题描述

我使用的是 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,但不确定这是否会起到很大作用。通过我的研究,我没有找到对这个问题的太多支持。

解决方法

我在使用 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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...