윈도우에는 기본적으로 윈도우 디펜더라는 백신이 설치되어 있습니다.
pyinstaller 로 생성한 exe 실행파일이 디펜더에게 바이러스라며 실행이 차단 당하는 문제를 겪었습니다.
os 는 윈도우 11 이었습니다.
pyinstaller 에는 bootloader 라는 개념이 있습니다.
bootloader 는 os 의 그것과는 다르게 미리 컴파일된 특정 플랫폼 전용 라이브러리를 포함시킨 바이너리입니다.
bootloader 가 지정되지 않은 pyinstaller 는 관련한 패키지나 소스를 내려받아 이를 빌드하는 구조입니다.
pip 로 설치한 pyinstaller 로 생성된 exe 는 특정 플랫폼 전용이 아닌 범용이고 다운로드를 높은 확률로 시도할텐데 이를 백신이 바이러스로 판단하는 것으로 추정됩니다.
이것을 어떻게 구축해볼까요?
먼저 pywin32 가 설치되야 합니다.
python3 -m pip install pywin32
위 명령이 제대로 실행되지 않는다면 https://github.com/mhammond/pywin32/releases 를 방문해서 본인의 파이썬 버전과 아키텍처에 맞는 설치본을 골라 설치하시면 됩니다.
아래는 제가 시도한 내용입니다.
python3 -m pip uninstall pyinstaller
git clone https://github.com/pyinstaller/pyinstaller.git
cd pyinstaller
cd bootloader
python3 waf all
cd ..
python3 -m pip install .
이제 원래 파이썬 프로젝트 vscode 창을 닫고 다시 열어서 pyinstaller 명령을 실행하시고 생성된 바이너리를 테스트해보시면 됩니다.
전 성공!!
'IT > python' 카테고리의 다른 글
[python3][one-liner] 섹션 헤더 없는 설정 파일 값 바꾸기 (2) | 2024.12.19 |
---|---|
[python3] windows10 에서 pyenv + poetry 환경 구축하기 (0) | 2024.05.03 |
[python3] 예외 이름 출력하기 (0) | 2024.02.15 |
[python3] 윈도우에서 한줄 실행하는 방법 (0) | 2024.02.01 |
[python3][auto py to exe] 설치해보기 (3) | 2024.01.26 |