-
윈도우 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 installationpython-magic 설치 후 바뀐 에러
인터넷을 찾아보니 맥에서는 brew install libmagic을 사용하면 된다고는 하는데, 윈도우에서는 먹히지 않았다. 인터넷을 찾아보다가 pip install python-magic-bin을 사용하면 된다는 말을 찾았고, 1 설치 후에는 해당 오류가 발생되지 않고 정상적으로 실행이 됐다. 2
여담
왜 magic을 설치할 때 별도의 바이너리 모듈이 필요한 것 일까?
python-magic 모듈의 설명 페이지를 보면 python-magic은 magic이라는 이름의 프로그램을 파이썬에서 쉽게 사용하기 위한 모듈이었다.
그리고 magic은 리눅스 환경에서 작동하는 프로그램이다. 그래서 윈도우에서는 작동이 불가능했고, 작동을 위해 윈도우용으로 수정된 magic이 필요했다. 그리고 윈도우용으로 수정된 magic이 프로그램이 포함된 모듈이 python-magic-bin이었다. 3
만약 python-magic-bin을 사용하지 않는다면 윈도우 용으로 수정된 magic프로그램을 받고 python-magic 모듈에서 magic 프로그램의 위치를 수정해주는 방법이 있긴 했지만, magic 프로그램 자체가 거의 수정이 되지 않는 듯하니 그냥 편하게 윈도우에서는 4pip install python-magic-bin을 사용하는 것이 나을 듯하다.
근데 왜 프로그램 이름이 magic일까...
[대표 이미지 파일]
파이썬 로고 파일 출처: python.org/community/logos/ - melonicedlatte.com/python/2018/07/18/124452.html [본문으로]
- github.com/Yelp/elastalert/issues/1927#issuecomment-558685759 [본문으로]
- 유닉스에서 파일의 타입을 알려주는 file 명령어 역할이라고 한다. [본문으로]
- 윈도우용 magic 프로그램의 마지막 수정 일이 2009년이다... gnuwin32.sourceforge.net/packages/file.htm [본문으로]