본문 바로가기
Python

Python - 리소스 및 코드 하나로 실행, Single-file executables

by 올엠 2024. 3. 3.
반응형

프로그램을 제작하다보면, 간편하게 배포 할 수 있도록 하나의 파일로 생성해야 하는 경우가 많다.

이유는 프로그램을 실행하는 사람 입장에서는 개발자의 개발 의도를 온전히 이해하기가 어렵기 때문에 운용해야 하는 파일이 많거나 실행 단계가 많다는 것은 사용자에게 복잡함과 실행 오류를 발생할 수 있는 가능성을 높이기 때문에 이를 간소화 하는 것은 매우 중요하다.

C# 기준으로도 아래와 같은 리소스를 exe하나로 만드는 형식으로 배포를 많이 하게 된다.

 

다만 파이썬은 스크립트 형태의 프로그램이기 때문에 리소스를 별도로 구분하지 않고 실제 코드 내용을 생성하고자 하는 Main 파일에 넣어주어야 하며, 파이썬 코드 특성상 들어쓰기를 주의해야 하기 때문에 라인별로 들어쓰기 유지가 가능하도록 구성하면 된다.

먼저 코드를 확인해보면, 아래와 같이 ''' 3개를 통해 멀티 라인을 통해 작성을 하면 파일 내용을 그대로 생성하기 때문에 가장 온전하게 Python 파일을 만들 수 있다.

import subprocess

def make_python_file():
    file_path = 'test.py'
    file = open(file_path, 'w')
    file.write('''
def print_success():
    print("sub_run sucesss")
print_success()
    ''')
    file.close()

# Python 파일 생성 
make_python_file()
# 실행된 파일 실행
subprocess.Popen(['python3', 'test.py'])

위 프로그램을 실행하면 정상적으로 test.py 를 생성하고 subprocess를 통해 생성된 test.py를 실행하게 된다.


이외 리소스 역시 이러한 방식으로 파일을 생성하는 방식으로 진행하면 된다.

반응형