Python / 컴파일(Compile)하는 방법, EXE 파일 만드는 방법

py_compile

  • py_compile을 이용하여 컴파일하면 코드를 숨길 수 있다.(그러나, 그리 어렵지 않게 원래 코드를 알아낼 수 있다고 한다.)
  • 다음과 같이 명령하면 HelloWorld.py를 컴파일한다.
python -m py_compile HelloWorld.py
  • 컴파일하면 __pycache__ 폴더가 생기고, 그 안에 HelloWorld.cpython-310.pyc 파일이 생성된다.(310은 Python 버전)
  • pyc 형식의 파일이 실행 파일인데, 동일 버전의 Python이 설치된 PC에서만 실행된다.

EXE 파일 만들기

  • Python이 설치되지 않은 기기에서도 실행 가능하게 하려면 EXE 파일을 만든다.
  • EXE 형식으로 컴파일하기 위해서는 pyinstaller가 필요하다.
pip install pyinstaller

기본

  • 다음과 같이 명령하면 HelloWorld.py를 컴파일한다.
pyinstaller HelloWorld.py
  • 컴파일하면 __pycache__, build, dist 폴더와 spec 파일이 생성된다.
  • dist 폴더에 들어가면...

  • 컴파일한 파일명과 같은 폴더가 있는데, 그 폴더 안에 EXE 파일이 있다.
  • 만약 배포하고 싶다면 이 폴더를 배포한다.

하나의 파일로 컴파일하기

  • 다음과 같이 --onefile 옵션을 붙이면 하나의 파일로 컴파일된다.
pyinstaller --onefile HelloWorld.py

  • 하나의 파일로 컴파일하면 총 파일의 크기는 줄어드나 실행 속도가 느려진다.

Related Posts

Python / 자료형 / 사전(dict)

Python / 자료형 / 사전(dict)

사전(dict) 사전은 집합의 일종으로, 키와 값이 하나의 데이터를 만듭니다. 순서가 없고 중복된 데이터를 갖지 않아서, 중복 데이터를 만드는 +, *를 사용할 수 없지만, 키를 이용하여 인덱스기호()를 사용할 수 있습니다. 사전 만들기 사전은 집합과 마찬가지로 중괄호로 만듭니다. 키를 앞에, 값을 뒤에 쓰고, 구분은 콜론(:)으로 합니다. 데이터의 구분은 쉼표(,)로 합니다. >>> jb = {1:"one", 2:"two", 3:"three"} >>> jb {1: 'one', ...

Python / Database / 연결하는 방법

Python / Database / 연결하는 방법

Python으로 Database에 연결하고 데이터를 조회해 봅니다. Microsoft SQL Server 패키지 설치하기 pymssql를 설치합니다. pip install pymssql 연결하고 데이터 조회하기 pymssql를 import합니다. import pymssql 연결 설정을 합니다. conn = pymssql.connect( server = 'server-ip', port = port-number, user = 'user-name', password = 'pasword', database = 'database-name' ) cursor를 ...

Python / int() / 정수로 변환하는 함수

Python / int() / 정수로 변환하는 함수

int()는 정수로 변환하는 함수입니다. 실수를 정수로 변환하는 경우 소숫점 아래 수를 없앱니다. 숫자로 이루어진 문자열을 정수로 변환할 수 있습니다. print( "int( 1.2 ) : ", int( 1.2 ) ) print( "int( 1.7 ) : ", int( 1.7 ) ) print( "int( -1.2 ) : ", int( -1.2 ) ) print( "int( -1.7 ) : ", int( ...

Python / 컴파일(Compile)하는 방법, EXE 파일 만드는 방법

Python / 컴파일(Compile)하는 방법, EXE 파일 만드는 방법

py_compile py_compile을 이용하여 컴파일하면 코드를 숨길 수 있다.(그러나, 그리 어렵지 않게 원래 코드를 알아낼 수 있다고 한다.) 다음과 같이 명령하면 HelloWorld.py를 컴파일한다. python -m py_compile HelloWorld.py 컴파일하면 __pycache__ 폴더가 생기고, 그 안에 HelloWorld.cpython-310.pyc 파일이 생성된다.(310은 Python 버전) pyc 형식의 파일이 실행 파일인데, 동일 버전의 Python이 설치된 PC에서만 실행된다. EXE 파일 만들기 Python이 설치되지 않은 기기에서도 실행 가능하게 ...

Python / 반복문 / for

Python / 반복문 / for

Python에서 반복 작업을 할 때 for 또는 while을 사용합니다. for에 대하여 알아봅니다. 기본 반복 횟수는 range() 함수로 만듭니다. 예를 들어 range(3)는 0, 1, 2를 생성하므로 3번 반복하게 됩니다. for i in range(3) : print( i, "Hello World!" ) 0 Hello World! 1 Hello World! 2 Hello World! 1부터 100까지의 합 구하기 range() 함수로 1부터 100까지 ...

Python / 문법 / 주석

Python / 문법 / 주석

주석에는 한 줄 주석과 여러 줄 주석이 있습니다. 한 줄 주석은 #을 사용합니다. # 뒤의 문자열이 주석이 됩니다. # 한 줄 주석 print( "Hello" ) # Hello 출력 여러 줄 주석은 작은 따옴표 세 개('''), 또는 큰 따옴표 세 개(""")를 사용합니다. 혼용할 수는 없습니다. ''' print( "Hello" ) print( "World" ) ''' print( "Hello" ) print( "World" ) """ print( "Hello" ) print( "World" ...

Python / range() / 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수

Python / range() / 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수

range() range() 함수는 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수입니다. for 반복문에 자주 사용됩니다. 문법 range(stop) 0부터 시작하여 stop보다 하나 작은 수까지 만듭니다. range(start, stop) start부터 시작하여 stop보다 하나 작은 수까지 만듭니다. range(start, stop, step) start부터 시작하여 stop보다 하나 작은 수까지 step 간격으로 수를 만듭니다. 예제 1 0부터 3까지의 수를 만듭니다. >>> list(range(4)) 1부터 10까지의 수를 만듭니다. >>> ...

Python / 반복문 / while

Python / 반복문 / while

while while은 주어진 조건이 참일 동안 작업을 반복하게 하는 구문입니다. 문법 while condition: statement condition : 작업을 하기 위한 조건입니다. 참일 동안 반복 작업을 합니다. statement : 반복할 작업입니다. 예제 i가 10보다 작으면 i을 출력합니다. 작업할 때마다 i는 1씩 커지고, i가 10이 되면 while문을 빠져나옵니다. i = 1 while i < 10: print(i, ...

Python / Package / flake8 - PEP(Python Enhance Proposal) 검증 패키지 사용법

Python / Package / flake8 - PEP(Python Enhance Proposal) 검증 패키지 사용법

Style Guide for Python Code 여러 명이 공동으로 파이썬 코딩을 할 때, 각자의 스타일이 다르면 문제가 생길 수 있습니다. 그래서 협업을 수월하게 할 수 있도록 몇 가지 규칙을 정놓았는데, 이를 PEP(Python Enhance Proposal)라고 합니다. 몇 가지 규칙을 나열해보면... Use 4 spaces per indentation level. : 들여쓰기는 4칸의 공백 Limit all lines to a ...

Python / dir() / 객체의 메소드 등을 반환하는 함수

Python / dir() / 객체의 메소드 등을 반환하는 함수

예제 1 a = "Hello" print( dir( a ) ) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', ...