我搜索了很多解决此问题的方法,但找不到。我有点玩魔术文件,突然它起作用了。所以现在我将一步一步地为 Windows 和 Linux 用户解决类似我的或类似我的问题。
对于 WINDOWS:
第 1 步: 从您的 python lib 文件夹中删除 magic.py 和 magic.pyc 文件。如果您下载了zlib1.dll、magic1.dll、regex2.dll 和magic.mgc,也请删除它们。
第二步:下载this zip file并解压。
注意: 这个 zip 文件包含我们需要的所有内容:magic.py,magic.pyc,magic.mgc,zlib1.dll,magic.dll和regex2.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
这将以某种方式升级您的 pip 并消除错误。完成后,输入sudo pip install python-magic在pip升级后安装magic。
那么它应该可以工作:
>>> import magic
>>> s = magic.Magic()
>>> s.from_file("test.txt")
'ASCII text, with no line terminators'
>>>