Django GraphQL后端执行makemigrations遇magic版本不兼容错误求助
解决libmagic版本不兼容导致的magic.MagicException错误
方案一:升级本地file/libmagic到5.45+(推荐)
Mac系统自带的file版本普遍偏低,用Homebrew安装独立的最新版本:
- 未安装Homebrew时先执行安装命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装最新版file:
brew install file - 验证版本,确认输出为5.45及以上:
file -v - 重新编译项目中的magic.mgc文件:
- 进入项目的magic文件目录:
cd app_common/misc - 用新安装的file命令编译(确保目录下存在原始
magic文本文件):file -C -m magic
- 进入项目的magic文件目录:
- 重新执行makemigrations:
python manage.py makemigrations
方案二:降级python-magic适配本地file版本
如果不想升级file,可将python-magic降级到与本地5.41兼容的版本:
- 卸载当前python-magic:
pip uninstall python-magic - 安装适配5.41的版本(经测试
0.4.24版本兼容):pip install python-magic==0.4.24 - 重新运行makemigrations验证问题是否解决。
方案三:替换兼容版本的magic.mgc
若项目需保留旧逻辑,可替换为适配file 5.45的magic.mgc:
- 获取file 5.45版本对应的magic文本文件(可从对应版本的file源码包中提取)
- 将文本文件复制到项目的
app_common/misc目录 - 在该目录下用file 5.45命令编译生成新版本的magic.mgc:
file -C -m . - 替换原有的magic.mgc文件后,重新执行makemigrations。
内容的提问来源于stack exchange,提问作者Christopher DeVito
相关产品推荐
相关产品推荐

