【问题标题】:Magic Python not working魔术Python不工作
【发布时间】:2017-11-13 07:41:39
【问题描述】:

我是 python 的新手,我正在做一个需要检测文件类型的项目,所以我使用了魔法库,但是代码不起作用并且它正在引发异常。 测试代码为:

import magic
magic.from_file("./example.db")

追溯:

 Traceback (most recent call last):
- File "C:\Users\mariam\Desktop\pythonscripto\test.py", line 4, in <module>
    magic.from_file("./example.db")
- File "C:\Users\mariam\Desktop\pythonscripto\magic.py", line 122, in from_file
    m = _get_magic_type(mime)
- File "C:\Users\mariam\Desktop\pythonscripto\magic.py", line 111, in _get_magic_type
    i = _instances[mime] = Magic(mime=mime)
- File "C:\Users\mariam\Desktop\pythonscripto\magic.py", line 60, in \__init__
    magic_load(self.cookie, magic_file)
- File "C:\Users\mariam\Desktop\pythonscripto\magic.py", line 250, in magic_load
    return _magic_load(cookie, coerce_filename(filename))
- File "C:\Users\mariam\Desktop\pythonscripto\magic.py", line 181, in errorcheck_negative_one
    raise MagicException(err)
magic.MagicException: None

有什么帮助吗?

【问题讨论】:

  • 您是否按照github.com/ahupp/python-magic 处的 Windows 依赖项说明进行操作?
  • @SimonFraser 是的,或者至少我是这么认为的。但是,我确实使用了 64 位依赖项,他们说它没有经过测试。恐怕这就是问题的根源!
  • 我自己没有使用过,所以我不确定 - 我只是想确保涵盖了显而易见的选项!
  • 我遇到了同样的错误 - 在 64 位 Windows 上也是如此。
  • @kyrenia 我解决了问题,确保你的python版本是64位的,依赖文件也是64位的

标签: python python-3.x file mime-types


【解决方案1】:

我解决了这个问题,只要确保你的 Python 版本是 64 位,以及依赖文件,你应该在同一个文件夹中包含以下文件:

  • regex2.dll
  • zlib1.dll
  • 魔法(无扩展)
  • magic.mgc
  • libgnurx-0.dll
  • magic.py

【讨论】:

    猜你喜欢
    • 2015-08-22
    • 2017-05-23
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2021-05-04
    • 2018-10-25
    • 2018-03-10
    • 1970-01-01
    相关资源
    最近更新 更多