selenium打包的可执行EXE文件出现缺少文件错误
(2024-06-20 19:15:11)| 分类: python |
将Python程序使用pyinstaller进行打包,便于分发和执行。
但执行EXE文件时,提示no such file or
directory:getAttribute.js,这是在\selenium\webdriver\remote\目录下的一个文件。
翻遍中文网络,没有找到合适的解决方式。偶尔在英文网站上看到解决方案:
- 它可能需要在构建时添加驱动程序可执行文件。 即chromedriver.exe
- 构建时可能还需要添加一些与硒相关的包文件getattributes.js例如文件。这是我的项目所必需的。
- pyinstaller 会将这些文件解压缩到 Windows用户的 AppData 中的临时文件夹中。因此,在您的代码中,您的相对路径可能需要使用如下示例函数进行解析(如果您在 vs code 中运行代码,或者您正在通过 pyinstaller 可执行文件运行,则路径应按函数解析)。
对于第 1 项和第 2 项,您可以对它们分别使用 pyinstaller 的 --add-binary 和
--add-data 功能。也可以在带有 add-files 列表的 *.spec 文件中执行此操作,在您第一次运行
pyinstaller 之后,我更喜欢命令行选项,如下所示。
pyinstaller ./app.py --onefile --noconsole --add-binary "./driver/chromedriver.exe;./driver" --add-data "C:\Users\YOUR_USER_NAME\.conda\pkgs\selenium-3.141.0-py38h2bbff1b_1000\Lib\site-packages\selenium\webdriver\remote;selenium\webdriver\remote
参照此中方式,将我的打包命令修改为:
pyinstaller zhuangweiyun.py -F --add-data e:\ProgramData\An
aconda3\Lib\site-packages\selenium\webdriver\remote\getAttribute.js;selenium\web
driver\remote --add-data e:\ProgramData\Anaconda3\Lib\site-packages\selenium\web
driver\remote\isDisplayed.js;selenium\webdriver\remote
完美解决No such file的问题。
参考网址:/questions/70329716/filenotfounderror-errno-2-no-such-file-or-directory-selenium-webdriver-remo

加载中…