简体   繁体   中英

How to include chromedriver with pyinstaller?

I am using pyinstaller to create an executable of my python script.
In the script I'm using these imports:

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

The problem is, when running pyinstaller myscript.py , it will result in including Firefox, instead of Chrome. In the result folder c:...\\dist\\myscript\\selenium\\webdriver there is a firefox folder, so it is simply skipping chromedriver, and it is a serious problem for me, because the script needs to run with Chrome.
There is only a few questions around this topic, but there is no answer to solve the issue.
I was thinking on adding the --hidden-import MODULENAME tag to the command, but chromedriver.exe is not a module... Thanks

It should be added as a binary file, since it is a binary file...
So a custom spec file needed where the chromedriver's path on the local system and the desired location relative to the dist\\myscript should be defined, so it looks something like this:

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

And then run the pyinstaller with this spec file: pyinstaller myscript.spec myscript.py

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM