0

我用magic1.dll、regex2.dll和zlib1.dll文件安装了python-magic,它可以正确导入,但是当我尝试这样做时,m = magic.Magic()我得到了错误:Could not find any magic file。所以,我用谷歌搜索了一下,在这里找到了答案给了我另一个错误:File 5.3 supports only version 7 magic file. "magic.mgc" is version 12.

我可以得到一个魔法文件版本 7 吗?

4

1 回答 1

1

我搜索了很多解决此问题的方法,但找不到。我有点玩魔术文件,突然它起作用了。所以现在我将一步一步地为Windows和Linux用户解决像我这样或类似我的问题。

对于 Windows:

第 1 步:从您的 python lib 文件夹中删除magic.py和文件。magic.pyc如果您下载了zlib1.dll、和magic1.dll,也将它们删除。regex2.dllmagic.mgc

第 2 步:下载此 zip 文件并解压缩。

注意: 这个 zip 文件包含我们需要的所有内容:magic.pymagic.pycmagic.mgczlib1.dll和.magic.dllregex2.dll

第 3 步:然后将magic.py,magic.pyc和 DLL 文件移动到 python 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 程序位于同一文件夹中才能正常工作。如果你不这样做,你会得到错误


对于 Linux:

如果您是 Linux 用户并且遇到魔法问题,那么您必须执行以下操作:

第 1 步:在命令行中,键入sudo pip install python-magic以安装或升级到最新版本的 python-magic。如果出现IncompleteRead错误,请在命令行中输入:

对于 Python 2:

sudo apt-get remove python-pip && sudo easy_install pip

对于 Python 3:

sudo apt-get remove python3-pip && sudo easy_install3 pip

这将以某种方式升级您的点子并消除错误。完成后,输入sudo pip install python-magicpip 升级后安装魔法。

然后它应该工作:

>>> import magic
>>> s = magic.Magic()
>>> s.from_file("test.txt")
'ASCII text, with no line terminators'
>>> 
于 2017-03-10T02:30:27.007 回答