◽ Jaided EasyOCR

[EasyOCR] EasyOCR의 External Libraries 구조에는 뭐가 있나 알아보기


들어가며...

  EasyOCR을 이용중인데 약간의 커스텀한 작업이 필요해서 소스를 내려받고 프로젝트를 나름 분석하는 중인데, 외부 라이브러리를 어떤식으로 끌어다 쓰는지 그리고 프로젝트 구성은 어떻게 이뤄졌는지 알아보려고 이 글을 정리한다.

 

EasyOCR만의 구조적 특징은 아니며, 파이썬 프로젝트가 공통적으로 가지고 있는 특징이긴한데, 내부 폴더를 열면 구성하고 있는 라이브러리에 따라 더 많이 있을 수도 있고 더 적을 수도 있으니 폴더별 역할이 이런이런 기능들이 모여있는 폴더구나 정도만 이 글에서 알아가면 될 것 같다. 그리고 이 수준에서 이 글을 정리한 것이라 Easy OCR만의 프로젝트 구성을 분석하려는 사람에게는 크게 도움이 되지 않을 수도 있다.


External Library

  본 소스를 도와주는 외부 라이브러리 구성은 어떻게 되었는지 간단히 정리하자면, 일단 모든 파이썬 프로젝트들이 공통적으로 구성되는 "External Libraries" 폴더는 외부 라이브러리와 관련된 파일들을 포함하는 폴더라고 보면 됩니다.

 

 

  • Python 3.9 (EasyOCR):
    이 폴더는 외부 라이브러리 최상위 폴더로 EasyOCR이라는 외부 라이브러리와 관련된 파일들을 포함하고 있는 폴더라고 생각하면 됩니다.

  • Binary Skeletons:
    이 폴더는 파이썬 바이너리 라이브러리와 관련된 파일들을 포함하는데 모든 파이썬 프로젝트 공통 폴더라고 보면 되고 즉, 프로젝트가 독립적으로 구성될 수 있도록 돕는 폴더. 이러한 라이브러리는 C/C++ 등의 언어로 작성되어 파이썬 인터프리터와 상호 작용합니다. 이 폴더에는 이러한 바이너리 라이브러리의 파일이 저장되어 있고 이 파일들은 파이썬 인터프리터에 의해 필요에 따라 동적으로 로드됩니다.

  • DLLs:
    이 폴더는 파이썬 DLL(Dynamic-Link Library) 파일들을 포함합니다. DLL은 다른 프로그램들과 공유되는 코드와 데이터를 포함하는 파일입니다. 파이썬에서는 특정 라이브러리나 모듈이 DLL 형태로 제공될 수 있으며, 이 폴더에 해당 DLL 파일들이 저장됩니다. 이러한 DLL 파일은 파이썬 프로젝트에서 사용되는 외부 라이브러리의 일부입니다.

  • Extended Definitions:
    이 폴더는 확장된 형식 정의 파일들을 포함합니다. 확장된 형식 정의 파일은 특정 라이브러리나 모듈에 대한 형식 정보를 제공합니다. 이 정보는 코드 편집기와 같은 도구에서 자동 완성, 정적 분석 등을 지원하기 위해 사용됩니다. 확장된 형식 정의 파일들은 외부 라이브러리의 클래스, 함수, 변수 등에 대한 설명과 타입 정보를 포함합니다.

  • Lib:
    이 폴더는 파이썬 표준 라이브러리와 관련된 파일들을 포함합니다. 파이썬 표준 라이브러리는 파이썬 언어에 기본적으로 포함된 모듈과 함수들의 집합입니다. Lib 폴더에는 내장 모듈 및 기본 함수와 클래스들에 대한 소스 코드 파일들이 저장됩니다.
  • Python39:
    이 폴더는 파이썬 3.9 버전에 대한 실행 파일과 관련된 파일들을 포함합니다. 파이썬은 버전별로 릴리스되며, 각 버전마다 실행 파일 및 관련 파일들이 필요합니다. Python39 폴더에는 파이썬 3.9 버전 실행 파일과 해당 버전에서 사용되는 기타 파일들이 저장됩니다.

  • site-packages:
    이 폴더는 외부 라이브러리들을 포함합니다. 파이썬 패키지 관리자인 pip를 통해 설치한 외부 라이브러리들이 이 폴더에 저장됩니다. 외부 라이브러리는 프로젝트에서 필요한 추가 기능을 제공하거나 특정 작업을 수행하기 위해 사용됩니다. 프로젝트에서는 이 폴더에 있는 라이브러리를 import하여 사용할 수 있습니다.

  • venv:
    이 폴더는 가상 환경(Virtual Environment)과 관련된 파일들을 포함합니다. 가상 환경은 파이썬 프로젝트에서 패키지 종속성을 분리하고 프로젝트별로 독립된 파이썬 환경을 구성하는 데 사용됩니다. 가상 환경을 생성하면 해당 환경에 필요한 패키지들을 설치하고, 프로젝트에서는 가상 환경에 있는 패키지들을 사용합니다. venv 폴더에는 가상 환경을 설정하는 데 필요한 파일들이 저장됩니다.

  • Typeshed Stubs:
    이 폴더는 타입 힌트(Type Hinting)를 위한 stub 파일들을 포함합니다. 타입 힌트는 파이썬 코드에서 변수와 함수의 타입 정보를 제공하여 정적 타입 검사를 지원하고 가독성을 높여줍니다. Typeshed는 외부 라이브러리들의 타입 정보를 포함하는 저장소입니다. Typeshed Stubs 폴더에는 다양한 외부 라이브러리들의 타입 정보가 포함된 stub 파일들이 저장됩니다. 이러한 stub 파일들은 IDE나 정적 타입 검사 도구 등에서 사용되어 코드 편집기에서 타입 힌트를 제공하고 정확성을 검증할 수 있도록 도와줍니다. 타입 힌트는 코드의 가독성과 유지보수성을 높여주는 중요한 요소입니다.
    이러한 "External Libraries" 폴더의 하위 폴더들은 파이썬 프로젝트에서 사용되는 외부 라이브러리와 관련된 파일들을구성합니다.

  이 파일들은 프로젝트에서 필요한 기능을 제공하거나 확장성을 향상시키는 데 도움을 주는 역할을 합니다. 폴더 구조와 파일들은 개발 환경 및 프로젝트 설정에 따라 다를 수 있지만, 보통 이러한 구성을 갖는 프로젝트에서는 외부 라이브러리의 설치와 관리, 타입 정보 제공, 실행에 필요한 파일들을 포함하는 역할을 수행합니다. 

 


참고 :

- http://www.jaided.ai/easyocr/documentation/


 

푸터바