Pyinstaller를 PyCharm에 연결해서 사용하는 방법
PyCharm에서 Pyinstaller를 편하게 연결해서 사용하고 싶은데... 어떻게 하면 될까?
File 메뉴에서 setting에 들어간 다음, Tools에서 External tools를 Click!
"+"를 누르면 아래와 같은 화면이 나오는데 Name, Description, Program, Arguments, Working directory를 아래와 같이 입력한 다음 "OK"를 클릭한다.
Arguments와 Working directory에서 "$"로 묶여있는 부분은 PyCharm에서 정의한 macro이다. "Insert Macro..." 버튼을 눌러서 추가하거나 직접 입력해줘도 된다. Arguments에서 "--onefile"은 말그대로 단 하나의 exe 파일로 만들어주는 옵션이다. "--windowed"는 GUI program을 exe파일로 만들거라 넣어준 옵션이다.
Pyinstaller 실행방법은 main이 되는 .py 파일에서 마우스 오른쪽 클릭을 하면 나오는 메뉴 중에 External Tools를 누르면 내가 조금 전에 추가해준 Name에 해당하는 Pyinstaller가 나온다. "Pyinstaller"를 클릭하면 바로 pyinstaller가 실행되어 debug 창에서 열심히 exe 파일을 만든다. Screenshot에선 test.py가 main이 되는 .py 파일인데 demo.py를 import해서 사용한다. pyinstaller는 main이 되는 .py 파일만 pyinstaller로 돌려주면 자동으로 import한 .py 파일들까지 넣어서 묶어주므로 걱정할 필요없다. 완료가 되면 test.exe 파일이 해당 project directory(설정에서 "Working directory"로 설정한 부분)에 dist라는 폴더안에 생성된 것을 볼 수 있다.
정말 간단한 GUI 예제 프로그램이지만 11MB나 되는 exe 파일이 만들어진 것을 볼 수 있는데 PVM이 같이 들어가있고 wxPython 등 모든 import library들이 들어가 있으니 뭐 어느정도는 납득이 되는 크기이다. 실행해보면 python으로 실행한것과 완전히 동일하게 실행되는 모습을 볼 수 있다.
'PYTHON' 카테고리의 다른 글
Python 로그(log) 함수 (0) | 2021.03.02 |
---|---|
[scapy] import error 해결 방법 (0) | 2019.01.24 |
[scapy] pcap 파일안에 UDP packet은 몇개있을까? (1) | 2019.01.24 |
[scapy] pcap 파일안에 들어있는 전체 패킷 갯수는? (1) | 2019.01.23 |
댓글
이 글 공유하기
다른 글
-
Python 로그(log) 함수
Python 로그(log) 함수
2021.03.02Python에서 log 함수는 "math"을 import해서 쓸 수 있다. import math 밑이 2인 로그 함수 ($ log_2 x$) import math print(math.log2(1)) # output: 0.0 print(math.log2(2)) # output: 1.0 print(math.log2(4)) # output: 2.0 print(math.log2(5)) # output: 2.321928094887362 밑이 10인 로그 함수 ($ log_{10} x $) import math print(math.log10(1)) # output: 0.0 print(math.log10(2)) # output: 0.3010299956639812 print(math.log10(10)) # output… -
[scapy] import error 해결 방법
[scapy] import error 해결 방법
2019.01.24Python 3.7을 사용하는데 pip로 scapy를 install하고 import하니까 error가 났다. > pip install scapy 이렇게 설치하게 되면 현시점에서 가장 최신버전으로 설치가 된다. 내가 설치한 현시점 최신버전은 2.4.2였다. 근데 googling해보니 이 scapy 2.4.2이 python 3.7과 안맞는 부분이 있나보다. import하면 error를 띄우는데 아래와 같이 uninstall하고 2.4.0 버전으로 다시 설치하니 import할때의 error가 없어졌다. 기능상 문제도 없는 것 같다. uninstall을 꼭 해야 하는지는 잘 모르겠음… > pip uninstall scapy > pip install scapy==2.4.0 -
[scapy] pcap 파일안에 UDP packet은 몇개있을까?
[scapy] pcap 파일안에 UDP packet은 몇개있을까?
2019.01.24.pcap 파일안에 UDP 패킷이 몇개 있는지 어떻게 알 수 있을까? 다음 예제 파일은 test.pcapng 파일을 읽어서 Ethernet/IP/ICMP/TCP/UDP packet이 각각 몇개씩 있는지 확인하고 출력해준다. 핵심인 haslayer() 함수는 각각의 패킷에 어떤 protocol layer가 있는지 확인해준다. Return은 boolean으로 True/False로 확인하면 된다. # Imports import scapy.all as sc pkts = sc.rdpcap('test.pcapng') print('Total packets :', len(pkts)) # init counts count_ether = 0 count_ip = 0 count_icmp = 0 count_tcp = 0 coun… -
[scapy] pcap 파일안에 들어있는 전체 패킷 갯수는?
[scapy] pcap 파일안에 들어있는 전체 패킷 갯수는?
2019.01.23어떤 .pcap 파일안에 들어있는 전체 패킷 갯수는 어떻게 알아낼까? Python scapy를 이용해서 아래와 같이 단 몇줄로 쉽게 알아낼 수 있다. Python version은 3.7이고, IDE는 spyder3를 이용했다. # getTotalNumPackets.py import scapy.all as sc pkts = sc.rdpcap('test.pcapng') print('Total packets =', len(pkts)) 단 세줄로 구현할 수 있는데 첫번째로 scapy의 모든 class를 import하고 sc로 별칭을 정해준다. 그리고 두번째 줄에서 scapy의 rdpcap() 함수를 이용해서 test.pcapng를 parsing하여 모든 패킷들을 pkts에 넣어준다. 여기서 주의할 점은 test…
댓글을 사용할 수 없습니다.