You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Python-Magic库报错:无法找到有效magic文件及版本兼容问题

Python-Magic库报错解决指南:找不到魔法文件&版本不兼容问题

刚碰到过和你完全一样的坑,给你整理几个能快速解决的方案:

第一个问题:找不到有效魔法文件

这个错误是因为Windows平台下python-magic默认找不到识别文件类型所需的魔法文件(magic file),得手动指定,但指定后又碰到版本不兼容的问题,那咱们先解决版本匹配的核心问题。

核心解决方案:让python-magic和魔法文件版本匹配

你看到的File 5.32 supports only...错误,本质是你用的python-magic版本和GnuWin32里的5.32版魔法文件不兼容。解决办法有两种:

方案1:匹配版本安装python-magic

  • 先卸载当前的python-magic:
    pip uninstall python-magic -y
    
  • 安装和5.32版魔法文件兼容的python-magic版本,比如0.4.15
    pip install python-magic==0.4.15
    
  • 然后正确指定魔法文件路径(注意Windows路径的转义,用原始字符串避免出错):
    import magic
    # 用原始字符串r''避免反斜杠转义问题
    magic_obj = magic.Magic(magic_file=r'C:\Program Files (x86)\GnuWin32\share\misc\magic.mgc')
    filepath = r'path\somefile.txt'
    print(magic_obj.from_file(filepath))
    
    这里建议用magic.mgc而不是magic,因为GnuWin32里编译好的二进制魔法文件是这个,加载速度更快也更稳定。

方案2:直接用python-magic-bin(最省心)

如果不想折腾版本匹配,直接换用python-magic-bin包——这个包已经内置了Windows所需的libmagic库和对应版本的魔法文件,完全不用手动指定路径:

  • 先卸载原有的python-magic:
    pip uninstall python-magic -y
    
  • 安装python-magic-bin:
    pip install python-magic-bin
    
  • 然后直接运行你原来的代码就行,完全不用改:
    import magic
    filepath = r'path\somefile.txt'
    print(magic.from_file(filepath))
    

我自己最后是用方案2解决的,省心又没再出问题,你可以试试!

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

火山引擎 最新活动