SeouliteLab

[Python/파이썬] PyInstaller, Chromedriver console 제거 방법 본문

프로그래밍

[Python/파이썬] PyInstaller, Chromedriver console 제거 방법

Seoulite Lab 2024. 3. 4. 09:02

PyInstaller로 Python 프로그램을 패키징하고 실행할 때 Chromedriver 콘솔 창이 나타나는 문제가 발생할 수 있습니다. 이 문제를 해결하기 위한 여러 가지 방법을 살펴보겠습니다. 각 방법은 PyInstaller로 패키징된 프로그램에서 Chromedriver 콘솔 창을 숨기는 다양한 기술을 제공합니다.

1. Chromedriver 옵션 설정

Chromedriver를 실행할 때 `--silent` 또는 `--log-level=3` 등의 옵션을 사용하여 콘솔 출력을 최소화할 수 있습니다.

2. PyInstaller Hook 사용

PyInstaller Hook을 사용하여 Chromedriver와 관련된 파일을 패키징할 때 특정 옵션을 설정할 수 있습니다. 이를 통해 콘솔 창을 숨길 수 있습니다.

3. Chromedriver 실행 방식 변경

Chromedriver를 백그라운드에서 실행하도록 변경하여 콘솔 창을 숨길 수 있습니다. 이를 위해 subprocess 또는 pyvirtualdisplay와 같은 도구를 사용할 수 있습니다.

4. 커스텀 실행 스크립트 사용

PyInstaller로 패키징하기 전에 Chromedriver를 실행하는 별도의 커스텀 실행 스크립트를 작성하여 콘솔 창을 숨길 수 있습니다. 이 스크립트에서는 필요한 옵션을 설정하고 Chromedriver를 실행합니다.

5. 실행 파일 수정

PyInstaller로 패키징된 실행 파일을 직접 수정하여 콘솔 창을 숨길 수 있습니다. 이 방법은 실행 파일의 특정 부분을 조작하여 Chromedriver 콘솔 창을 제거하는 것을 의미합니다.

6. 로깅 레벨 설정

Chromedriver의 로깅 레벨을 설정하여 콘솔 출력을 최소화할 수 있습니다. 이를 통해 콘솔 창을 숨길 수 있습니다.

예제

예제 1: Chromedriver 옵션 설정

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--silent")
driver = webdriver.Chrome(options=options)

예제 2: PyInstaller Hook 사용

# Hook 파일에 추가
hiddenimports = ['chromedriver_autoinstaller']

예제 3: Chromedriver 실행 방식 변경

import subprocess

subprocess.Popen(["chromedriver", "--silent"])

예제 4: 커스텀 실행 스크립트 사용

# custom_chromedriver.py
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--silent

")
driver = webdriver.Chrome(options=options)

예제 5: 실행 파일 수정

# 실행 파일을 직접 수정하여 Chromedriver 콘솔 창 제거

예제 6: 로깅 레벨 설정

import logging

logging.getLogger('webdriver').setLevel(logging.WARNING)