Python & Selenium を PyInstaller で実行ファイル化するまとめ

公開日:  

python selenium pyinstaller


Python で Selenium を使ったプログラムを PyInstaller で実行ファイル化する自分用まとめです。
Chromium(ブラウザ)と ChromeDriver(ドライバ) も一緒にバンドルします。

実行環境

  • Windows 10
  • Python 3.6.2
  • selenium 3.141.0
  • PyInstaller 3.5

Chromium と ChromeDriver のダウンロード

Selenium を使うときに必要となるブラウザとそれに対応するドライバをダウンロードします。

今回は Chromium と ChromeDriver です。

このページから Chromium とそのバージョンに対応した ChromeDriver をダウンロードします(ChromeDriver はこちらからもダウンロードできます)。

ダウンロードしてきたものをそれぞれフォルダを分けて配置します。
Chromium は browser フォルダに ChromeDriver は driver フォルダに配置しました。

Chromiumを配置

Chromiumを配置

ChromeDriverを配置

ChromeDriverを配置

ソース内でブラウザとドライバのパスを指定する

パスを取得するための関数を作成します。これを使ってブラウザとドライバのパスを取得するようにします。

def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.dirname(__file__)
    return os.path.join(base_path, relative_path)

以下のようにブラウザとドライバを指定します。

    # ブラウザ
    browser_path = resource_path('browser/chrome.exe')
    # ドライバ
    driver_path = resource_path('driver/chromedriver.exe')

    options = webdriver.ChromeOptions()
    options.binary_location = browser_path
    driver = webdriver.Chrome(driver_path, options=options)

PyInstaller を実行する

PyInstaller の--add-binaryオプションを使用してブラウザとドライバも一緒にバンドルします。

pyinstaller ./main.py --onefile --noconsole --add-binary "./driver/chromedriver.exe;./driver" --add-binary "./browser;./browser"

以上です。



関連記事