Today
-
Yesterday
-
Total
-
  • 윈도우 magic 모듈을 찾을 수 없다는 오류
    Soliloquy 2020. 5. 31. 15:03

     

     

    NFC 모듈을 사용하기 위해서 ndeftool이라는 ndef 파일 생성 프로그램을 사용해보려고 했다. 리눅스 기반인 Raspbian 운영체제에서는 root계정으로 ndeftool을 설치하면 별문제 없이 사용 가능했다. 하지만 이상하게도 윈도우 상에서는 ndeftool 설치 후 실행하면 'magic'이라는 모듈을 찾을 수 없다는 에러와 함께 실행이 되지 않는다.

     

    File "c:\users\...\appdata\local\programs\python\python38-32\lib\site-packages\ndeftool\commands\Load.py", line 4, in
    import magic
    ModuleNotFoundError: No module named 'magic'

    ndeftool 사용시 오류

     

    설치할 때, magic이 설치가 안됐나? 싶어서 pip install magic도 해보고, 그게 되지 않아서 pip install python-magic을 해보았더니, 이번에는 아래와 같은 오류로 바뀌었다.

     

    File "c:\users\...\appdata\local\programs\python\python38-32\lib\site-packages\magic.py", line 201, in
    raise ImportError('failed to find libmagic. Check your installation')
    ImportError: failed to find libmagic. Check your installation

    python-magic 설치 후 바뀐 에러

     

    인터넷을 찾아보니 맥에서는 brew install libmagic을 사용하면 된다고는 하는데,[각주:1] 윈도우에서는 먹히지 않았다. 인터넷을 찾아보다가 pip install python-magic-bin을 사용하면 된다는 말을 찾았고,[각주:2] 설치 후에는 해당 오류가 발생되지 않고 정상적으로 실행이 됐다.

     

    여담

    왜 magic을 설치할 때 별도의 바이너리 모듈이 필요한 것 일까?

    python-magic 모듈의 설명 페이지를 보면 python-magic은 magic이라는 이름의 프로그램을 파이썬에서 쉽게 사용하기 위한 모듈이었다.

     

    그리고 magic은 리눅스 환경에서 작동하는 프로그램이다.[각주:3] 그래서 윈도우에서는 작동이 불가능했고, 작동을 위해 윈도우용으로 수정된 magic이 필요했다. 그리고 윈도우용으로 수정된 magic이 프로그램이 포함된 모듈이 python-magic-bin이었다.

     

    만약 python-magic-bin을 사용하지 않는다면 윈도우 용으로 수정된 magic프로그램을 받고 python-magic 모듈에서 magic 프로그램의 위치를 수정해주는 방법이 있긴 했지만, magic 프로그램 자체가 거의 수정이 되지 않는 듯하니[각주:4] 그냥 편하게 윈도우에서는 pip install python-magic-bin을 사용하는 것이 나을 듯하다.

     

    근데 왜 프로그램 이름이 magic일까...

     

    [대표 이미지 파일]

     

    파이썬 로고 파일 출처: python.org/community/logos/

     

    1. melonicedlatte.com/python/2018/07/18/124452.html [본문으로]
    2. github.com/Yelp/elastalert/issues/1927#issuecomment-558685759 [본문으로]
    3. 유닉스에서 파일의 타입을 알려주는 file 명령어 역할이라고 한다. [본문으로]
    4. 윈도우용 magic 프로그램의 마지막 수정 일이 2009년이다... gnuwin32.sourceforge.net/packages/file.htm [본문으로]

    댓글

어제는 이곳에 명이 다녀갔습니다.

Powered & Designed by Tistory