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

  • 하나의 파일로 컴파일하면 총 파일의 크기는 줄어드나 실행 속도가 느려진다.
같은 카테고리의 다른 글
Python / input() / 사용자가 입력한 값을 변수에 저장하는 함수

Python / input() / 사용자가 입력한 값을 변수에 저장하는 함수

input() 함수로 사용자가 어떤 값을 입력하게 하고, 그 값을 변수에 저장할 수 있습니다. 문법 예를 들어 다음을 입력하고 엔터를 누르면 사용자가 값을 입력하기를 기다립니다. >>> x = input() 값을 입력하고 엔터를 누르면 그 값이 변수 x에 저장됩니다. >>> x = input() hello >>> x 'hello' 입력할 값에 대한 안내를 출력하고 싶다면 다음과 같이 합니다. >>> x = input('some text') 작은 따옴표 ...

Python / PyCharm 설치하는 방법

Python / PyCharm 설치하는 방법

PyCharm는 Python 개발 도구 중의 하나입니다. JetBrains에서 만든 것으로, 모든 기능이 있는 프로페셔널 에디션과, 기능의 제한이 있지만 무료로 사용할 수 있는 커뮤니티 에디션이 있습니다. 아래는 OS가 Windows인 컴퓨터에 PyCharm 커뮤니티 에디션을 다운로드하고 설치하는 방법입니다. 참고로, Python이 설치되어 있지 않아도 괜찮습니다. PyCharm에서 프로젝트를 만들 때 자동으로 Python을 다운로드 합니다. PyCharm 페이지에서 를 클릭합니다. Community ...

Python / type() / 데이터 타입(자료형) 확인하는 함수

Python / type() / 데이터 타입(자료형) 확인하는 함수

type() type()은 데이터 타입을 확인할 수 있는 함수입니다. 예제 123의 데이터 타입을 확인합니다. 결과는 정수입니다. >>> type(123) <class 'int'> 변수에 데이터를 담고, 변수 이름으로 데이터 타입을 확인할 수 있습니다. >>> jb = 123 >>> type(jb) <class 'int'> print() 함수로 결과를 출력할 수 있습니다. 쉘에서는 결과가 같지만, 실제 프로그램 실행시에는 데이터 타입이 출력됩니다. >>> jb = 123 >>> print(type(jb)) <class 'int'> 다음은 여러 가지 데이터의 ...

Python / 자료형 / 사전(dict)

Python / 자료형 / 사전(dict)

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

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', ...

Python / 설치 / 윈도우에 설치하기

Python / 설치 / 윈도우에 설치하기

Windows를 OS로 하는 컴퓨터에 Python을 설치하는 방법이다. 다운로드 및 설치 Python 다운로드 페이지에서 윈도우용 Python을 다운로드 한다. 다운로드한 파일을 실행한다. 기본 설정 그대로 설치해도 되고, 변경을 해도 된다. 는 체크하는 게 좋다. 여러 계정에서 사용할 것이라면 을 클릭하고... 를 클릭한 후... 에 체크하고 설치한다. 설치를 완료하면 를 클릭한다. 테스트하기 IDLE을 실행한다. 다음과 같은 창에서... print( "Hello ...

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 / 자료형 / 숫자

Python / 자료형 / 숫자

숫자 자료 만들기 숫자 자료는 따옴표 없이 숫자만 넣어서 만든다. 소숫점이 없으면 정수형 자료, 소숫점이 있으면 실수형 자료가 만들어진다. 정수형 자료의 타입은 int, >>> a = 100 >>> print( type( a ) ) <class 'int'> 실수형 자료의 타입은 float이다. >>> a = 100.1 >>> print( type( a ) ) <class 'float'> 숫자 연산자 사칙 연산 +는 더하고, -는 빼고, *는 곱하고, /는 ...

Python / 자료형 / 집합(set)

Python / 자료형 / 집합(set)

집합(set) 집합은 여러 개의 자료를 하나의 변수로 관리할 때 사용하는 자료형 중의 하나입니다. 집합 자료형은 수학의 집합과 같은 성질을 가집니다. 즉, 집합은 중복된 데이터를 가질 수 없고, 순서가 없습니다. 따라서 순서와 관련된 인덱스기호()를 사용할 수 없고, 중복 데이터를 만드는 +, *를 사용할 수 없습니다. 하지만, in, not in, len()은 사용할 수 있습니다. 집합 만들기 집합은 중괄호로 만듭니다. >>> ...

Python / 조건문 / if

Python / 조건문 / if

if if 구문을 이용하면, 특정 조건을 만족할 때 특정 작업이 수행되도록 할 수 있습니다. 조건을 만족하는 동안 반복 작업을 하고 싶다면 while을 사용하세요. 문법 1 조건이 참이라면 코드를 실행합니다. if condition: statement 1은 0보다 크므로 HM을 출력합니다. if 1 > 0: print("HM") 조건이 거짓이므로 HM을 출력하지 않습니다. 즉, 아무런 작업을 하지 ...