【发布时间】:2022-10-21 08:20:11
【问题描述】:
我正在尝试创建一个可以在用户提供的网站上搜索项目的应用程序。我希望应用程序能够由非 Python 用户运行。我尝试将 PyInstaller 与以下代码一起使用。它运行成功,但在尝试让应用程序运行时,底部的错误返回。只是在寻找任何想法,至少可以为我指明正确的方向。另外作为参考,我添加了脚本的前几行以显示包含的库和 webdriver。我也在使用 Anaconda 和 Spyder。
!pyinstaller ./product_finder.py --onefile --noconsole --add-binary "./driver/chromedriver.exe;./driver"
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
import pandas as pd
user_report = input("\nPlease enter the web address:\n")
driver = webdriver.Chrome(executable_path='./driver/chromedriver.exe')
driver.get(user_report)
#来自控制台的错误消息
Traceback (most recent call last):
File "product_finder.py", line 8, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
File "selenium\webdriver\__init__.py", line 18, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
File "selenium\webdriver\firefox\webdriver.py", line 29, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
File "selenium\webdriver\remote\webdriver.py", line 26, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
File "selenium\webdriver\remote\webelement.py", line 43, in <module>
File "pkgutil.py", line 637, in get_data
File "PyInstaller\loader\pyimod03_importers.py", line 344, in get_data
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\user\\AppData\\Local\\Temp\\1\\_MEI134402\\selenium\\webdriver\\remote\\getAttribute.js'
#例子
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
import pandas as pd
user_report = input("\nPlease enter the web address you wish to open:\n")
driver = webdriver.Chrome(executable_path='./driver/chromedriver.exe')
driver.get(user_report)
while True:
introduce = input("\nClick enter to end the program..\n")
if introduce == "":
break
#用于 Anaconda/Spyder 上 PyInstaller 的代码:
!pyinstaller ./test.py --onefile --add-binary "./driver/chromedriver.exe;./driver"
【问题讨论】:
-
您是否安装了最新版本的 pyinstaller?你能跑吗
pip install -U pyinstaller -
我实际上正在使用 Anaconda 和 Spyder。不确定这是否会使这变得更加困难。
-
pyinstaller --version的输出是什么 -
我添加了一个缩短代码的示例,该示例在 PyInstaller 完成后提供该错误。
标签: python pandas selenium webdriver pyinstaller