You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller与pathlib冲突:移除pathlib致Anaconda Navigator被删

解决PyInstaller与Anaconda Navigator的pathlib冲突问题

方案1:创建独立conda环境用于PyInstaller

这是最稳妥的隔离方案,完全避免依赖冲突:

  • 新建一个专门给PyInstaller用的conda环境,指定匹配的Python版本:
    conda create -n pyinstaller_env python=3.10.9
    
  • 激活环境,安装指定版本的PyInstaller和项目依赖:
    conda activate pyinstaller_env
    pip install pyinstaller==5.11.0
    # 按需安装你的项目依赖,比如numpy、requests等
    
  • 之后每次打包时,先激活这个环境运行PyInstaller即可。原环境保留Anaconda Navigator和pathlib,互不干扰。

方案2:临时移除pathlib打包后恢复

适合不想多开环境的场景,操作步骤简单:

  • 先备份当前环境的包列表,以防依赖异常:
    conda list --export > env_backup.txt
    
  • 移除pathlib(此时Navigator会被连带卸载,先不用管):
    conda remove pathlib
    
  • 运行PyInstaller完成脚本打包:
    pyinstaller your_script.py
    
  • 打包完成后,重新安装Anaconda Navigator,它会自动补装所需的pathlib:
    conda install anaconda-navigator
    
  • 如果出现依赖缺失,用备份文件恢复环境:
    conda create -n restored_env --file env_backup.txt
    

方案3:修改PyInstaller的兼容性检测(不推荐)

这是应急的hack方式,可能引发未知问题,谨慎使用:

  • 找到conda环境中PyInstaller的兼容性检查文件,路径大致为:你的conda环境路径/Lib/site-packages/PyInstaller/utils/requirements_check.py
  • 打开文件,找到检测pathlib的代码块,直接注释掉:
    # if is_package_installed('pathlib'):
    #     raise SystemExit(
    #         "The 'pathlib' package is an obsolete backport of a standard library package and is incompatible with PyInstaller. "
    #         "Please remove this package using conda remove then try again."
    #     )
    
  • 保存后PyInstaller就不会因pathlib存在报错,但后续PyInstaller更新后需要重新操作。

内容的提问来源于stack exchange,提问作者Lisitrx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:25:07