Exception Value: Failed to Find Libmagic. Check Your Installation in Windows 7

When I am trying to open django admin panel this error is showing:

ImportError at /admin/
failed to find libmagic.  Check your installation
Request Method: GET
Request URL:    Django Version: 1.5.1
Exception Type: ImportError
Exception Value:    failed to find libmagic.  Check your installation
Exception Location: C:\Python27\lib\site-packages\magic.py in <module>, line 131
Python Executable:  C:\Python27\python.exe
Python Version: 2.7.2
Python Path:
['C:\\Users\\farhan\\Downloads\\dist\\Django-1.5.1\\django\\bin\\mysite',
 'C:\\Python27\\lib\\site-packages\\distribute-0.6.49-py2.7.egg',
 'C:\\Windows\\system32\\python27.zip',
 'C:\\Python27\\DLLs',
 'C:\\Python27\\lib',
 'C:\\Python27\\lib\\plat-win',
 'C:\\Python27\\lib\\lib-tk',
 'C:\\Python27',
 'C:\\Python27\\lib\\site-packages',
 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info']
Server time:    Thu, 22 Aug 2013 13:19:01 +0600

Here is my traceback

3

8 Answers

Go here and then:

For Windoes 32bit, download the file "python_magic_bin-0.4.14-py2.py3-none-win32.whl" and run

pip install python_magic_bin-0.4.14-py2.py3-none-win32.whl

For Windows 64bit, download "python_magic_bin-0.4.14-py2.py3-none-win_amd64.whl" and run

pip install python_magic_bin-0.4.14-py2.py3-none-win_amd64.whl

now python-magic works

EDIT: As suggested in the comments, this also works:

pip install python-magic-bin==0.4.14
4

Your multiuploader form uses python-magic library possibly for filetype identification. However you probably do not have all the missing dependencies installed. Please install the missing dependencies.

3

As per the documentation () you have to install libmagic.

For Windows OS, you can do it by run the bellow command:

pip install python-magic-bin

And for Ubuntu based OS, you have to it by the bellow command:

sudo apt-get install libmagic1

From, your exception it is easy to say that, you are using Windows OS, so you have install it by the first command.

As per the documentation the current version of python-magic is 0.4.15

  • You can install the latest released version of python-magic through:

    pip install python-magic
    
  • This will install python-magic-0.4.15 as follows:

    C:\Users\username>pip install python-magic
    Collecting python-magic
      Using cached 
    Installing collected packages: python-magic
    Successfully installed python-magic-0.4.15
    
  • In the (Windows) documentation it is mentioned:

You'll need DLLs for libmagic. @julian-r has uploaded a version of this project that includes binaries to pypi:

  • You can install the python-magic-bin 0.4.14 through:

    pip install python-magic-bin==0.4.14
    
  • This will install python-magic-bin 0.4.14 as follows:

    C:\Users\username>pip install python-magic-bin==0.4.14
    Collecting python-magic-bin==0.4.14
      Downloading 
    /python_magic_bin-0.4.14-py2.py3-none-win32.whl (397kB)
        100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 399kB 473kB/s
    Installing collected packages: python-magic-bin
    Successfully installed python-magic-bin-0.4.14
    
  • Sample Code:

    import magic
    print(magic.from_file("C:/Users/username/Desktop/StackOverflow/Google_Gmail.png"))
    
  • Console Output:

    PNG image data, 1366 x 768, 8-bit/color RGB, non-interlaced
    
0

Install cygwin. Then move 'C:\cygwin64\bin\cygmagic-1.dll' to 'C:\Windows\System32\magic1.dll'.

  1. Download cygwin. The version of cygwin must as same as python.(exp: Although your OS is Win7 x64, you still should download 32 bit cygwin because your python is 32 bit). link:
  2. Install cygwin.
  3. Enter the path of cygwin and copy to C:\Windows\SysWOW64.

I was going carzy with this issue. But finally got a solution to it

Steps

  1. Uninstall all magic libraries from you system (as you may have tried installing tons of garbage by this time)
  2. Make sure you are running a python 64 bit version
  3. Install pip install python-magic-win64==0.4.13
  4. very important step, change your import statement to from winmagic import magic

Enjoy !!!

If your target platform supports the file command with certain extensions (available on macOS, *BSD and most Linux variants), you can use the following wrapper that does not require libmagic nor other dependencies:

import contextlib
import subprocess

def file_proc():
    args = [
        '/usr/bin/file',
        '--brief',
        '-E',
        '--no-dereference',
        '--no-buffer',
        '--preserve-date',
        '-00',
        '--mime-type',
        '--files-from', '-'
    ]

    with contextlib.ExitStack() as stack:
        proc = subprocess.Popen(args, bufsize=0, stdin=subprocess.PIPE, stdout=subprocess.PIPE, preexec_fn=None, text=True)
        stack.callback(proc.kill)

        while True:
            file_path = yield
            proc.stdin.write(file_path + '\n')
            proc.stdin.flush()

            file_type = ''
            while (c := proc.stdout.read(1)) != '\0':
                file_type += c

            yield file_type.splitlines()[0]


@contextlib.contextmanager
def file_typer():
    proc = file_proc()
    proc.send(None)

    def getter(path):
        posix_type = proc.send(path.as_posix())
        proc.send(None)
        return posix_type

    with contextlib.closing(proc):
        yield getter
        

with file_typer() as typer:
  typer('/usr/bin/python')

See the GitHub enter link description heregist for the most up-to-date version of this script.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Elena Rostova

Elena Rostova

Lead Health, Wellness & Medical Journalist

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.

Share this article
Twitter Facebook Pinterest