일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- pywinauto 윈도우
- 커머스API
- pywinauto 윈도우제어
- Uipath 기초
- 네이버부동산크롤링
- venv 설치
- 네이버매물크롤링
- Element is not clickable at point
- 네이버 로그인 영수증 해결
- vscode venv 설치
- 날짜 정규식
- 파이썬네이버부동산
- pywinauto
- UiPath
- Python
- 네이버 로그인 캡챠해결
- 파이썬 환경설정
- 네이버커머스API
- selenium
- 파이썬 가상환경 설치
- pycdc.exe
- uipath 입문
- Selenium 셀렉터잡기
- Uipath 설치방법
- 파이썬 가상환경 설치방법
- 가상환경설치
- 파이썬 네이버 로그인
- 네이버 로그인 하기
- pycdas.exe
- 왕초보 파이썬 실행
- Today
- Total
콘솔워크
[Pyinstaller] 생성한 exe 파일이 Trojan 바이러스로 인식되는 문제 본문
[개요]
pyinstaller는 python 코드를 배포하기 위해 실행파일 (exe)로 만들어주는 편리한 패키지이다.
패키지 다운로드
pip install pyinstaller
실행파일 생성
pyinstaller -n "파일이름" -w --onefile --clean "main.py" --icon "아이콘.ico"
패키지를 받은 후, 위 명령어를 입력하는 방식으로 자주 사용하고있다.
--onefile 옵션을 추가하는 것으로 프로그램이 하나의 exe 파일에 정리되어서 배포에도 아주 편리하고, 사용자 입장에서도 좋다.
이렇게 생성한 exe 파일은 대부분의 환경에서 잘 작동하지만, 몇몇 PC에서 해당 파일을 Trojan 바이러스로 인식하여 Window Defender에서 자동으로 삭제하는 문제가 있다.
물론 개발한 환경의 PC에서는 문제없이 작동하기 때문에 확인을 해보지 못했지만,
검색을 거듭한 결과, 가장 언급이 많았던 사항은 아래와 같았다.
Python의 패키지는 일반적으로 pip로 설치하는데, pyinstaller는 미리 컴파일된 패키지를 다운받아서 설치하게 되는 것 같다. 미리 컴파일 된 pyinstaller의 문제이므로 자신의 PC 환경에 맞게 빌드를 해야한다.
참고한 블로그
- https://renakim.github.io/ko/2020-02-12-pyinstaller-bootloader
- https://jasmine125.tistory.com/1009
- https://velog.io/@dvrp/PyInstaller-false-positive-해결하기
[현재 작업 환경]
- 작업 환경 Python: 3.8.7
- 지금의 작업 환경은 Python 프로젝트를 생성한 후, 'venv'라는 이름의 가상 환경을 생성한 후 해당 가상 환경에 패키지를 다운받은 후 작업을 하고 있음.
- 따라서 'venv'에 pyinstaller를 다운받을 것
python -m venv venv
venv\Scripts\activate.bat
[pyinstaller]
작업의 편리함을 위해 압축해제 한 폴더의 이름을 'pyinstaller-5.13.0'에서 'pyinstaller'로 변경
[pyinstaller 설치]
pyinstaller 폴더를 프로젝트 안의 적당한 곳으로 복사
VS Code의 터미널에서 가상환경 'venv' 활성화 후 아래의 명령어 실행
# 설치된 pyinstaller의 버전을 확인
pyinstaller -v
버전이 정상적으로 출력 되었다면 pip uninstall pyinstaller로 삭제한 후 다시 올 것
위에서 복사한 pyinstaller\bootloader 우클릭 후 통합 터미널에서 열기 클릭
pyInstaller의 빌드 도구인 waf를 사용하여 기존 빌드 환경을 초기화하고 모든 플랫폼에서 새로운 빌드를 수행하는 명령어 입력
python ./waf distclean all
이 과정에는 wheel이라는 패키지를 이용하게 되는데 설치되어있지 않다면 사전에 받아두어야 함
pip install wheel
상위 폴더로 이동 후 명령어 입력 (project\test\pyinstaller)
cd..
pip install .
'venv' 가상환경 안에 잘 설치되었는지 확인하기 위해 위에서 입력했던 명령어를 입력해본다.
# 설치된 pyinstaller의 버전을 확인
pyinstaller -v
pyinstaller 사용준비 완료
'프로그래밍 > python' 카테고리의 다른 글
th의 이름만 알때 바로 앞, 뒤에 있는 td나 select 박스 선택하기 preceding-sibling following-sibling (0) | 2023.10.03 |
---|---|
html tag를 pdf로 저장하는 라이브러리 pdfkit (0) | 2023.07.17 |
logging 모듈을 사용하여 로그를 남기는 방법 (0) | 2023.07.11 |
같은 형태의 dict가 들어있는 list에서 특정 key의 값만을 list화 시키는 방법 (0) | 2023.07.10 |
기존의 list의 값을 이용해서 새로운 list를 만드는 방법 list comprehension (0) | 2023.07.06 |