Module python-magic on/for Windows?

Larry Hale larzluv at hotmail.com
Sun May 11 23:32:16 EDT 2008


On May 10, 11:41 pm, Larry Hale <larz... at hotmail.com> wrote:
> I've heard tell of a Python binding for libmagic (file(1) *nixy
> command; seehttp://darwinsys.com/file/).  Generally, has anybody
> built this and worked with it under Windows?
>
> The only thing I've been able to find is the python-magic module athttp://hupp.org/adam/hg/python-magic/.
>
>     [1] Is this "THE" python-magic module.  (It seems to be to me, but
> obviously I don't know. :)
>
>     [2] Has anybody been able to build THIS version under Windows?
>
> I've gotten as far as completing the "setup.py install" process.
> (After many troubles; I'll post the top-to-bottom HowTo-like info if/
> when I ever get it to work.  :)
>
> At this point, there -is- a "magic" module that can be imported
> (attempted-to, that is), but it fails.
>
> If I go to a cmd window, run the Py interpreter, and do "import magic"
> I get:
>
>     [1] an error pop-up (Windows window, which is blocking [as opposed
> to "non-blocking", not "obscuring", though it does that, too] the cmd
> window):
>
>         (X) This application has failed to start because magic1.dll
> was not found.  Re-installing the application may fix this problem.
> [OK]
>
>     [2] then, within the interpreter, I get:
>
>         Traceback (most recent call last):
>           File "<stdin>", line 1, in <module>
>           File "build\bdist.win32\egg\magic.py", line 2, in <module>
>           File "build\bdist.win32\egg\cmagic.py", line 7, in <module>
>           File "build\bdist.win32\egg\_cmagic.py", line 7, in <module>
>           File "build\bdist.win32\egg\_cmagic.py", line 6, in
> __bootstrap__
>         ImportError: DLL load failed: The specified module could not
> be found.
>
> I'm using Python 2.5 on Windows XP Pro.  I've got CYGWIN installed
> (more info can be provided if necessary) for a copy of file.exe (and
> libmagic.a @ 357KB and libmagic.dll.a @ 25KB in C:\cygwin\lib).  I
> also have GNUWin32, also for file.exe alternatively (and
> libmagic.dll.a @ ~ 8KB in C:\Program Files\GnuWin32\lib).
>
> magic.py in C:\Program Files\Python25\Lib\site-packages\magic-0.1-
> py2.5-win32.egg imports cmagic.py (also in this egg), which imports
> _cmagic.py, which has the following:
>
>     def __bootstrap__():
>        global __bootstrap__, __loader__, __file__
>        import sys, pkg_resources, imp
>        __file__ =
> pkg_resources.resource_filename(__name__,'_cmagic.pyd')
>        del __bootstrap__, __loader__
>        imp.load_dynamic(__name__,__file__)
>     __bootstrap__()
>
> Now I *presume* my problem (at this point) is that I need to have
> libmagic named as "magic1.dll" -wherever- this module is looking for
> it.  I'm just not sure, let alone if this is true, WHERE Python/
> modules expect to find such things.
>
> Also, which version(s)/file(s) should be placed where, or...??
>
> Thanks for any/all help/pointers.  I apologize up-front if I left out
> any pertinent info; I'm paranoid about putting in too much (and some
> that may be worthless) already...  :)
>
> Cheers,
> Larry Hale

ALSO: I've even tried putting the 4 "magic" files INTO the .egg
file... still no-go.  :/


Thanks, all!
-Larry



More information about the Python-list mailing list