python-magic module'对象没有属性'open'

时间:2013-08-14 08:19:25

标签: python

我正在尝试使用python-magic包,这是libmagic的包装类。

我使用“pip install python-magic”安装 但是当我测试它时:

import magic
ms = magic.open(magic.MAGIC_NONE)
ms.load()

它显示模块'对象没有属性'打开'。我搜索谷歌,有人说,一个原因是我没有__init__.py文件。所以我检查了我的peronsal site-packages目录。我找到了magic.py,magic.pyc和一个文件夹python_magic-0.4.3-py2.7.egg-info,它只包含一些文本文件。

如何获取__init__.py文件?我检查了安装的其他软件包,其中一些已经安装 有这样一个文件。

感谢。

1 个答案:

答案 0 :(得分:4)

没有 magic.open()功能。如果您查看python-magic documentation,则可以看到它具有magic.from_file()magic.from_buffer()功能。

使用magic.from_file()测试路径名称;模块为您打开该文件,并确定类型。使用magic.from_buffer()测试字节序列(Python 2中的str,Python 3中的bytes。)

还有一个magic.Magic()类可以实例化(每个线程!)来改变它的运行方式:

Magic(mime=False, magic_file=None, mime_encoding=False)

记录为:

  

创建一个新的libmagic包装器。

     

mime - 如果True,则返回mimetypes而不是文字说明   mime_encoding - 如果True,则返回编解码器   magic_file - 使用系统默认值

以外的mime数据库

并根据README 所有 就公共API而言。

Magic类在内部处理magic.MAGIC_NONE;在创建mime=True实例时设置magic.Magic()会设置magic.MAGIC_MIME标记。

看起来您遇到的代码完全覆盖了不同的 Python magic库,这需要更多的内部手持。我的建议:不要试图复制它。使用这个新库,它的文档API