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 / 조건문 / if

Python / 조건문 / if

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

Python / print() / 출력하는 함수

Python / print() / 출력하는 함수

Python의 print() 함수 사용법을 정리합니다. 큰 따옴표를 이용하여 Hello를 출력합니다. print("Hello") Hello 작은 따옴표를 이용하여 Hello를 출력합니다. print('Hello') Hello 작은 따옴표를 출력하려면 큰 따옴표로 감쌉니다. print("'Hello'") 'Hello' 큰 따옴표를 출력하려면 작은 따옴표로 감쌉니다. print('"Hello"') "Hello" 쉼표로 연결할 수 있습니다. 공백이 생깁니다. print("Hello","JB") Hello JB print() 함수를 연달아 사용하면 다른 줄에 출력됩니다. print("Hello") print("JB") Hello JB 줄바꿈 없이 출력하려면 end를 사용합니다. print("Hello",end=" ") print("JB") Hello JB sep를 이용하여 출력 값 사이에 특정 문자를 넣을 수 있습니다. print("A","B","C","D",sep=" ...

Python / 윈도우에서 pip로 설치할 때 '액세스가 거부되었습니다.' 해결하는 방법

Python / 윈도우에서 pip로 설치할 때 '액세스가 거부되었습니다.' 해결하는 방법

윈도우에서 pip로 라이브러리를 설치할 때, 다음과 같은 에러가 나면서 설치가 되지 않을 수 있습니다. ERROR: Could not install packages due to an EnvironmentError: 액세스가 거부되었습니다: 'C:\\Program Files (x86)\\Python38-32\\Lib\\site-packages\\PIL' Consider using the `--user` option or check the permissions. 해당 폴더에 적절한 권한이 없어서 발생하는 문제로, 관리자 권한으로 CMD를 실행하면 해결됩니다.

Python / 모듈(module) 사용하기

Python / 모듈(module) 사용하기

모듈 가져오고 사용하기 import로 모듈을 가져옵니다. 예를 들어 math 모듈을 가져오고 싶다면 >>> import math 모듈에 포함된 함수 등 목록을 보고 싶다면 dir() 함수를 이용합니다. >>> dir(math) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', ...

Python / 자료형 / 리스트(list)

Python / 자료형 / 리스트(list)

리스트(list) 여러 개의 자료를 하나의 변수로 관리할 때 사용합니다. 리스트 만들기 리스트는 대괄호로 만듭니다. >>> jb = 빈 리스트를 만들 수 있습니다. >>> jb = 리스트 출력하기 print() 함수로 출력해봅니다. >>> jb = >>> print(jb) 리스트는 인덱스를 가집니다. 인덱스를 이용해서 특정 위치의 값을 출력할 수 있습니다. >>> print(jb) four >>> print(jb) 5 범위를 출력할 수 있습니다. >>> print(jb) >>> ...

Python / 문법 / 주석

Python / 문법 / 주석

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

Python / 자료형 / 사전(dict)

Python / 자료형 / 사전(dict)

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

Python / 객체(Object)와 변수(Variable)

Python / 객체(Object)와 변수(Variable)

객체(Object), 변수(Variable), 변수명(Variable Name) 메모리에 저장된 자료를 객체(object)라고 한다. 객체를 저장한 공간을 변수(Variable), 변수의 이름을 변수명(Variable Name)이라고 한다. 변수에 객체를 넣을 때 등호 '='을 이용한다. 등호 왼쪽에는 변수명, 등호 오른쪽에는 객체를 적는다. 예를 들어 다음은 객체 100을 x라는 이름의 변수에 저장하겠다는 뜻이다. x = 100 변수명은 다음의 규칙을 지켜야 한다. 규칙에 맞지 않으면 에러가 난다. 키워드를 ...

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 / 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 ...