我是Python的新手,拥有一些C ++知识。我在尝试设置python-magic来识别文件类型时收到以下错误消息。我已经使用pip安装了python-magic和libmagic。一旦我尝试导入魔术,我会收到错误消息,提示我检查我的安装。
错误讯息:
# python
>>> import magic
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import magic
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 173, in <module>
raise ImportError('failed to find libmagic. Check your installation')
ImportError: failed to find libmagic. Check your installation
>>>
谢谢大家,现在我能够导入魔法,但是当我在将magic1.dll和libgnurx-0.dll文件放入之后尝试输入magic.from_file(“userinput.py”)时,我收到另一条错误消息我的 C:\ Windows \ System32文件夹。错误信息如下:
# python
>>> import magic
>>> magic.from_file("userinput.py")
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
magic.from_file("userinput.py")
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 130, in from_file
m = _get_magic_type(mime)
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 118, in _get_magic_type
i = _instances[mime] = Magic(mime=mime)
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 67, in __init__
magic_load(self.cookie, magic_file)
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 256, in magic_load
return _magic_load(cookie, coerce_filename(filename))
File "C:\Users\adamh\AppData\Local\Programs\Python\Python35\lib\site-packages\magic.py", line 187, in errorcheck_negative_one
raise MagicException(err)
magic.MagicException
>>>
我认为问题是我无法使用以下伪命令传递magic.mgc的位置:file_magic = magic.Magic(magic_file =“c:path \ to \ magic.mgc”)
任何进一步的帮助将不胜感激。谢谢大家。
答案 0 :(得分:0)
听起来您没有设置正确的依赖项。您是否遵循了github page?
中的安装说明“在Windows上,将magic1.dll,regex2.dll和zlib1.dll从File for Windows项目提供的Binaries and Dependencies zipfiles复制到PATH上。您需要复制文件魔术[二进制 - zip] \ share \ misc,并将它的位置传递给Magic(magic_file = ...)。如果你使用64位构建的python,你需要64位libmagic二进制文件,可以在这里找到:{{ 3}}(注意:未经测试)“
答案 1 :(得分:0)
来自https://github.com/ahupp/python-magic#dependencies:
在Windows上,从File for Windows项目提供的Binaries and Dependencies zipfiles将magic1.dll,regex2.dll和zlib1.dll复制到PATH上。您需要将文件magic
从[binary-zip]\share\misc
复制出来,并将其传递给Magic(magic_file=...)
。如果你使用64位构建的python,你需要64位libmagic二进制文件,可以在这里找到:https://github.com/pidydx/libmagicwin64(注意:未经测试)