2017-06-11 59 views
1

我是python新手,我正在研究一個需要檢測文件類型的項目,所以我使用了魔法庫,但是代碼不工作,它引發異常。 測試代碼是:魔法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 

任何幫助嗎?

+0

你是否按照https://github.com/ahupp/python-magic中的windows dependencies說明操作? –

+0

@SimonFraser是的,或者至少我是這麼認爲的。但是,我確實使用了64位依賴關係,他們說它沒有經過測試。恐怕這是問題的根源! –

+0

我自己並沒有使用它,所以我不確定 - 我只是想確保明顯的選項被覆蓋! –

回答

1

我解決了這個問題,只是確保你的Python版本是64位,以及依賴關係的文件,你應該包括在同一文件夾中的以下文件:

  • regex2.dll
  • zlib1的.dll
  • 魔法(沒有擴展名)
  • magic.mgc
  • libgnurx-0.dll
  • magic.py