关于Python+selenium+chrome编译为exe更换电脑无法打开问题

前言

准备好对应版本的浏览器与驱动

这里我放置了对应的 浏览器与驱动,欢迎下载。

链接: https://pan.baidu.com/s/1SpWby5v6OPCxD4BfuNz6bw?pwd=5bse 提取码: 5bse

一、代码问题

需要将chrome浏览器与驱动放置到 代码文件区域,如下:

Browser文件内部:

python 复制代码
        chrome_options = Options()
        chrome_options.add_argument("--window-size=1920,960")  # 设置浏览器窗口大小
        chrome_options.add_argument("--disable-infobars")  # 隐藏"Chrome 正在受自动化软件控制"提示
                # 1. 浏览器参数初始化
        chrome_driver =  r"Browser/chromedriver.exe" # 浏览器驱动,注意,这里一定是相对于你当前代码的路径
        chrome_app = r"Browser/chrome.exe"  # 浏览器
        chrome_driver = ExeUtils.get_resources(chrome_driver)
        chrome_app = ExeUtils.get_resources(chrome_app)
        chrome_options.binary_location = chrome_app  # 添加浏览器

        
        if getattr(sys, 'frozen', False):
            print("已从exe包中加载chromedriver")
            # 从exe包里找chromedriver依赖驱动的情况
            chromedriver_path = os.path.join(sys._MEIPASS, "Browser/chromedriver.exe")
            service = Service(chromedriver_path)
            self.driver = webdriver.Chrome(service=service, options=chrome_options)
        else:
        # 普通情况下从本地文件路径找依赖的情况
            print("已从本地文件路径加载chromedriver")
            service = Service(chrome_driver)
            self.driver = webdriver.Chrome(service=service, options=chrome_options)

## 这段直接抄的别人的
class ExeUtils:
    """exe生成相关工具类"""
    @staticmethod
    def get_resources(path):
        """
        获取实际的资源访问路径(本地||临时)
        根据打包生成的临时目录访问资源
        或者直接运行脚本获取本地访问资源
        :param path:
        :return:
        """
        if getattr(sys, 'frozen', False):
            base_path = sys._MEIPASS
        else:
            base_path = os.path.abspath(".")
        return os.path.join(base_path, path)

打包问题

需要将所有的浏览器文件与驱动打包。

注意这里:绝对路径\Browser是刚刚圈起来的文件夹,要把文件夹全部打包进来。

python 复制代码
pyinstaller --onefile --windowed --icon=Helper.ico --hidden-import=selenium --add-data="绝对路径\Browser;Browser" Browser.py

结语

如果有问题需要欢迎咨询,有讲解的不清楚的可以评论或者私信告诉我。

相关推荐
jay神3 小时前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
满怀冰雪4 小时前
24-PaddleClas 模型评估、导出与推理部署入门
大数据·人工智能·python·深度学习·paddle
DeepVisionary10 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
阡之尘埃10 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
海兰10 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(三)
javascript·python·金融
cvcode_study10 小时前
Ollama+ComfyUI 多模态
大数据·人工智能·python
星核0penstarry12 小时前
试一试用gr.Workflow把AI多步骤串联变成可视化画布
人工智能·python·ai作画·api·ai编程·工作流·api聚合平台
taller_200012 小时前
【005】PiE 与传统 VBA 的核心区别
python·vba·pie·py
海兰12 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(一)
javascript·python·金融
大衛說12 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习