web-dev-qa-db-ja.com

pyinstallerにchromedriverを含める方法は?

Pyinstallerを使用して、pythonスクリプトの実行可能ファイルを作成しています。
スクリプトでは、次のインポートを使用しています。

from Selenium import webdriver
from Selenium.webdriver.chrome.options import Options
etc...

問題は、pyinstaller myscript.pyを実行すると、ChromeではなくFirefoxが含まれることです。結果フォルダーc:...\dist\myscript\Selenium\webdriverにfirefoxフォルダーがあるので、それは単にchromedriverをスキップしているだけであり、スクリプトはChromeで実行する必要があるため、私にとって深刻な問題です。
このトピックに関する質問はわずかですが、問題を解決するための回答はありません。
コマンドに--hidden-import MODULENAMEタグを追加することを考えていましたが、chromedriver.exeはモジュールではありません...ありがとうございます

12
monami

バイナリファイルなので、バイナリファイルとして追加する必要があります。
したがって、ローカルシステム上のchromedriverのパスと、dist\myscriptを基準にした目的の場所を定義する必要があるカスタム仕様ファイルが必要なので、次のようになります。

.....
a = Analysis(['myscript.py'],
             pathex=['path\\to\\my\\script'],
             binaries=[ ('path\\to\\my\\chromedriver.exe', '.\\Selenium\\webdriver') ],
             datas=None,
....

次に、次のスペックファイルを使用してpyinstallerを実行します。pyinstaller myscript.spec myscript.py

6
monami