python-magic icon indicating copy to clipboard operation
python-magic copied to clipboard

Binary distribution for libmagic on Windows

Open ahupp opened this issue 2 years ago • 4 comments

Windows users regularly run into issues with incompatible/broken or not found magic installations. Current issues:

https://github.com/ahupp/python-magic/issues/137 https://github.com/ahupp/python-magic/issues/288 https://github.com/ahupp/python-magic/issues/225 https://github.com/ahupp/python-magic/issues/276 https://github.com/ahupp/python-magic/issues/248 https://github.com/ahupp/python-magic/issues/87 https://github.com/ahupp/python-magic/issues/139 https://github.com/ahupp/python-magic/issues/233 https://github.com/ahupp/python-magic/issues/73 https://github.com/ahupp/python-magic/issues/60 https://github.com/ahupp/python-magic/issues/34

This task is to document/implement a more reliable solution for windows.

ahupp avatar Aug 25 '23 18:08 ahupp

python-magic-bin v0.4.14 was published in 2017. vcpkg can build libmagic v5.40 (circa 2021) with some tweaks for Windows.

  • Download and install the Visual Studio 2017 Build Tools (link source)

    • On the left, select Windows > Visual C++ build tools
    • Then on the right, confirm Visual C++ tools for CMake is selected
      • (3.3GB+ download since Windows 10 SDK is a dependency 😢)

    image

  • Per https://github.com/microsoft/vcpkg#quick-start-windows:

    • git clone https://github.com/microsoft/vcpkg
    • .\vcpkg\bootstrap-vcpkg.bat
    • .\vcpkg\vcpkg install libmagic --triplet=x64-windows
  • Under .\vcpkg\packages\libmagic_x64-windows (don't use mine) you'll find:

    • tools\libmagic\bin\magic-1.dll
      • python-magic loads libmagic.dll, you'll need to rename to this
    • tools\libmagic\bin\tre.dll
    • tools\libmagic\share\misc\magic.mgc
  • Place these files in the current directory, on the path, or overwrite after pip puts python-magic-bin under \Lib\site-packages\magic\libmagic

    • (in the same directory as the script will only work if that is the current directory or on the path)

Related: https://github.com/hey-red/Mime/issues/49 | https://github.com/hey-red/Libmagic-Build/tree/master/windows

Windows build is most problematic part of this

jspraul avatar Sep 05 '23 05:09 jspraul

Thanks for the details. This PR adds build setup for shipping binaries, I'll look it over in detail soon: https://github.com/ahupp/python-magic/pull/294

On Mon, Sep 4, 2023, 10:08 PM jspraul @.***> wrote:

python-magic-bin https://pypi.org/project/python-magic-bin/#files v0.4.14 was published in 2017. vcpkg https://github.com/microsoft/vcpkg#quick-start-windows can build libmagic v5.40 with some tweaks https://github.com/microsoft/vcpkg/tree/master/ports/libmagic for Windows.

Download and install the Visual Studio 2017 Build Tools https://aka.ms/vs/15/release/vs_buildtools.exe (link source https://stackoverflow.com/questions/57795314/are-visual-studio-2017-build-tools-still-available-for-download/64224475#64224475 )

  • On the left, select Windows > Visual C++ build tools
    • Then on the right, confirm Visual C++ tools for CMake is selected
      • (3.3GB+ download since Windows 10 SDK is a dependency 😢)

[image: image] https://user-images.githubusercontent.com/115931/265579872-a0fe3619-6c3a-434b-808c-2bcbd08da733.png

Per https://github.com/microsoft/vcpkg#quick-start-windows:

  • git clone https://github.com/microsoft/vcpkg
    • .\vcpkg\bootstrap-vcpkg.bat
    • .\vcpkg\vcpkg install libmagic --triplet=x64-windows

Under .\vcpkg\packages\libmagic_x64-windows (don't use mine https://github.com/ahupp/python-magic/files/12518768/libmagic_x64-windows.zip) you'll find:

  • tools\libmagic\bin\magic-1.dll - python-magic loads libmagic.dll, you'll need to rename to this
    • tools\libmagic\bin\tre.dll
    • tools\libmagic\share\misc\magic.mgc

Place these files in the current directory, on the path, or overwrite after pip puts python-magic-bin under \Lib\site-packages\magic\libmagic

  • (in the same directory as the script will only work if that is the current directory or on the path)

— Reply to this email directly, view it on GitHub https://github.com/ahupp/python-magic/issues/293#issuecomment-1705951174, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAJ5ESG6CCUHYWVIQVJPQ3XY2XVXANCNFSM6AAAAAA363A7PU . You are receiving this because you authored the thread.Message ID: @.***>

ahupp avatar Oct 10 '23 17:10 ahupp