[python] cx_Freeze를 사용하여 파이썬 프로그램에 자동으로 의존성 패키지를 포함시키는 방법

파이썬으로 작성한 프로그램을 다른 컴퓨터에서 실행하려면 해당 컴퓨터에 프로그램에서 사용되는 모든 의존성 패키지가 설치되어 있어야 합니다. 이를 위해 cx_Freeze는 파이썬 프로그램과 모든 의존성 파일들을 패키징하여 하나의 실행 가능한 파일로 만들어 줍니다.

cx_Freeze 설치하기

먼저 cx_Freeze를 설치해야 합니다. 파이썬 가상환경을 사용한다면, 해당 가상환경으로 전환한 후 다음 명령을 실행합니다.

pip install cx_Freeze

setup.py 파일 생성하기

cx_Freeze를 사용하여 패키지를 빌드하는 설정은 setup.py 파일에 작성합니다. 다음은 간단한 setup.py 파일 예시입니다.

from cx_Freeze import setup, Executable

# 실행 가능한 파일에 대한 정보를 설정합니다.
executables = [Executable("main.py", base=None, targetName="my_program.exe")]

# 의존성 패키지들을 포함시킬 패키지 리스트를 작성합니다.
include_packages = ["numpy", "pandas", "matplotlib"]

# 빌드 설정을 작성합니다.
build_options = {
    "packages": include_packages,
    "include_files": [],
    "excludes": [],
    "includes": [],
    "bin_path_includes": [],
    "bin_path_excludes": [],
    "replace_paths": [],
}

# setup 함수를 호출하여 빌드 설정을 실행합니다.
setup(
    name="My Program",
    version="1.0",
    description="My Python Program",
    options={"build_exe": build_options},
    executables=executables,
)

Executable 클래스에는 실행 가능한 파일의 정보를 설정합니다. base 파라미터를 None으로 설정하여 운영체제에 맞는 기본적인 실행 환경을 사용하도록 합니다. targetName을 통해 빌드된 파일의 이름을 설정할 수 있습니다. main.py를 본인의 프로그램 파일로 변경해주세요.

include_packages 변수에는 프로그램에 포함시킬 의존성 패키지들을 작성합니다. 여기서는 numpy, pandas, matplotlib를 예시로 들었습니다. 본인의 프로그램에서 필요로하는 패키지로 변경해주세요.

build_options 변수에는 패키징 옵션들을 작성합니다. packages는 의존성 패키지들, include_files는 프로그램에 포함할 파일들, excludes는 배포에서 제외할 패키지들, includes는 추가로 포함할 모듈들을 설정합니다. 필요에 따라 옵션들을 조정해주세요.

마지막으로 setup 함수를 호출하여 빌드 설정을 실행합니다. name, version, description 등의 정보를 설정한 후, options 파라미터에 빌드 설정을 전달하고, executables 파라미터에 실행 가능한 파일들의 정보를 전달합니다.

프로그램 빌드하기

setup.py 파일이 준비되었다면, 다음 명령을 실행하여 프로그램을 빌드할 수 있습니다.

python setup.py build

빌드가 성공적으로 완료되면 build 디렉토리에 실행 가능한 파일과 관련 파일들이 생성됩니다. 이 파일들을 다른 컴퓨터에 복사하여 실행하면, 해당 컴퓨터에 파이썬과 의존성 패키지들을 별도로 설치하지 않고도 프로그램을 실행할 수 있습니다.

결론

cx_Freeze를 사용하여 파이썬 프로그램에 자동으로 의존성 패키지를 포함시키는 방법에 대해 알아보았습니다. 의존성 패키지들을 패키징하여 실행 가능한 파일로 만들면, 다른 컴퓨터에서도 프로그램을 실행하기 위해 필요한 패키지 설치를 줄일 수 있습니다.