Python错误:文件5.3只支持版本7魔术文件

问题描述:

我用magic1.dll,regex2.dll和zlib1.dll文件安装了python-magic,并且它正确导入,但是当我尝试做例如m = magic.Magic()时出现错误:Could not find any magic file。所以,我google了一下,发现一个答案here,给了我另一个错误:File 5.3 supports only version 7 magic file. "magic.mgc" is version 12.Python错误:文件5.3只支持版本7魔术文件

我可以得到一个神奇的文件版本7?

我搜索了很多这个问题的解决方案,但找不到。我有点玩魔术文件,并突然发挥作用。因此,现在我将逐步编写解决Windows和Linux用户等我的问题或类似问题。

对于Windows:

第1步:从Python的lib文件夹中删除magic.pymagic.pyc文件。如果您下载了zlib1.dllmagic1.dll,regex2.dllmagic.mgc,还要删除它们。

第2步:下载this zip file并提取它。

注:这个zip文件包含了所有我们需要的:magic.pymagic.pycmagic.mgczlib1.dllmagic.dllregex2.dll

第3步:然后移动magic.pymagic.pyc和DLL文件到蟒蛇lib文件夹。

步骤4:转到计算机属性>高级系统设置>环境变量,然后单击New...。在变量名称中输入:magic并在其他字段中输入magic.mgc文件的路径,然后按确定。

现在它应该工作:

>>> import magic 
>>> s = magic.Magic() 
>>> s.from_file("test.txt") 
'ASCII text, with no line terminators' 
>>> 

注:如果您编译程序的EXE,确保该DLL文件,并magic.mgc是在同一文件夹作为EXE程序正常工作。如果你不这样做,你会得到错误


FOR LINUX:如果你是一个Linux用户

,你有魔法的问题,这里有您需要做什么:

第1步:在您的命令行中输入sudo pip install python-magic来安装或升级到最新版本的python-magic。如果你有IncompleteRead错误,那么你的命令行输入:

对于Python 2:

sudo易于得到删除蟒蛇点子& &须藤的easy_install点子

对于Python 3 :

sudo apt-get remove python3-pip & & sudo easy_i nstall3点

这将以某种方式升级您的点和删除错误。完成后,在pip升级后键入sudo pip install python-magic以安装魔术。

那么它应该工作:

>>> import magic 
>>> s = magic.Magic() 
>>> s.from_file("test.txt") 
'ASCII text, with no line terminators' 
>>> 
+0

我做什么都ü在帖子中提到的还是我得到这个error'magic.MagicException:文件5.20仅支持12个魔法文件。 'C:\ Python27 \ Lib \ magic.mgc'是版本7'。我在Windows 10 64位虚拟框中使用python2.7,12。尽快帮我.. !! – shiva