Python EasyOCR - macOS 설치 에러 해결 및 가상환경 설정 가이드

EasyOCR은 파이썬으로 개발된 광학문자인식(OCR) 라이브러리로, 다양한 언어의 텍스트를 이미지나 실시간 비디오에서 인식할 수 있게 해준다. 이 라이브러리는 PyTorch 기반으로 만들어져 있으며, 쉽고 간단하게 사용할 수 있는 인터페이스를 제공한다. EasyOCR은 다양한 언어를 지원하며, 특히 텍스트가 복잡하거나 비정형적인 경우에도 좋은 성능을 제공한다.

EasyOCR 설치

EasyOCR을 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 한다.

$ pip3 install easyocr

그런데 아래와 같이 에러 메시지가 출력됐다. 이건 Python 패키지를 설치하려는 환경이 “외부에서 관리되는 환경(externally managed environment)” 일때 발생한다. 일반적으로 macOS에서 Homebrew를 통해 Python을 설치한 경우이며, Homebrew로 설치한 Python은 패키지를 일관되게 관리하기 위해 시스템 패키지 관리자의 규칙을 따르는데, 이로 인해 pip로 패키지를 설치하는 것이 제한되는 것이다.

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
    xyz, where xyz is the package you are trying to
    install.

    If you wish to install a Python library that isn't in Homebrew,
    use a virtual environment:

    python3 -m venv path/to/venv
    source path/to/venv/bin/activate
    python3 -m pip install xyz

    If you wish to install a Python application that isn't in Homebrew,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. You can install pipx with

    brew install pipx

    You may restore the old behavior of pip by passing
    the '--break-system-packages' flag to pip, or by adding
    'break-system-packages = true' to your pip.conf file. The latter
    will permanently disable this error.

    If you disable this error, we STRONGLY recommend that you additionally
    pass the '--user' flag to pip, or set 'user = true' in your pip.conf
    file. Failure to do this can result in a broken Homebrew installation.

    Read more about this behavior here: <https://peps.python.org/pep-0668/>

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. 
You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

python 가상환경

추천되는 방법은 Python venv 를 이용하여 가상 환경을 만드는 것이다. 가상 환경을 사용하면 프로젝트별로 독립적인 패키지 설치가 가능하므로 시스템 전체에 영향을 주지 않고 필요한 패키지를 설치할 수 있다. 터미널에서 직접 venv 환경을 만들고 사용해도 되지만, vscode 에서 바로 셋팅하는 방법으로 진행했다.

우선 폴더를 하나 만든다.

$ mkdir myocr

vscode 를 실행하고, 방금 만든 폴더를 연다.

실행할 python 파일을 하나 만든다.

그러면 vscode 하단에 인터프리터 정보가 나올텐데, 아래 네모부분을 클릭한다.

인터프리터 선택창이 뜰텐데, “가상 환경 만들기…” 메뉴를 선택한다.

Conda 를 사용해도 되지만, 이 포스팅에서는 Venv 을 사용하였다.

그러고나면, python 버전을 선택하라고 나오는데, 그 중에 최신버전을 선택했다. 그러면 myocr 폴더내에 .venv 폴더가 생성된다. 이러면 파이썬 가상환경 셋팅이 완료된 것이다.

EasyOCR 설치

이제 easyocr 패키지만 설치하면 된다. vscode 프로그램 내에서 터미널을 연다.

그 터미널에서 easyocr 패키지를 설치하면 아래와 같이 잘 설치된다.

$ pip install easyocr

Collecting easyocr
  Using cached easyocr-1.7.2-py3-none-any.whl.metadata (10 kB)
Collecting torch (from easyocr)
  Using cached torch-2.5.1-cp312-none-macosx_11_0_arm64.whl.metadata (28 kB)
...(중략)...
Successfully installed MarkupSafe-3.0.2 Pillow-11.0.0 PyYAML-6.0.2 Shapely-2.0.6 
easyocr-1.7.2 filelock-3.16.1 fsspec-2024.10.0 imageio-2.36.0 jinja2-3.1.4 
lazy-loader-0.4 mpmath-1.3.0 networkx-3.4.2 ninja-1.11.1.1 numpy-2.1.3 
opencv-python-headless-4.10.0.84 packaging-24.1 pyclipper-1.3.0.post6 python-bidi-0.6.3 
scikit-image-0.24.0 scipy-1.14.1 setuptools-75.3.0 sympy-1.13.1 
tifffile-2024.9.20 torch-2.5.1 torchvision-0.20.1 typing-extensions-4.12.2
(.venv) 

EasyOCR 사용방법

자 이제 준비가 끝났으니, 이미지를 텍스트화 해보기로 한다. 예시로 아래 이미지를 준비했다.

프로그램은 정말 간단하다. 준비한 이미지파일에 영어와 한글 둘다 있기 때문에, Readerko, en 을 설정했다.

import easyocr

reader = easyocr.Reader(["ko", "en"])
result = reader.readtext('./image.jpg')

print(result)

출력결과는 아래와 같다. 일부 안맞는 것도 있지만, 실행은 잘되서 만족했다. 사실 이렇게 ocr 을 돌릴 일이 뭐가 있을까 싶긴한데, 텍스트 검색이 안되는 pdf 파일같은거 읽어서 텍스트화 하면 여러방면에 도움이 많이 될거 같다.

['LangChain Tool Calling 기능 실험 예제', '2024년 10월 14 일에 게시독 10 4 분 |터643 단어', 'LangChain 올 이용하여 Al 모델에 둘 호출(tool calling) 기술을 적용해보고 이틀 통해 Al 답변이 어떻게', '달라지논지 테스트틀 진행해보기로 한다 Tool Calling 기능은 대화형 Al 모델이 외부 도구릎 직접 호출하여', "특정 작업을 수행활 수 잇도록 하는 기능이려; AI가 단순히 대화틀 나누는 것' 넘어서 도구릎 호출하여 복잡", '한 연산 혹은 실데이터에 기반한 답변올 수행활 수 있게 해준다.', '#ai', '#langchain', '#Ilama', '[더 위기]', 'Tags:']
python  ocr 

더 보면 좋을 글들