关于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

结语

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

相关推荐
机器学习之心2 分钟前
小波增强型KAN网络 + SHAP可解释性分析(Pytorch实现)
人工智能·pytorch·python·kan网络
JavaEdge在掘金8 分钟前
MySQL 8.0 的隐藏索引:索引管理的利器,还是性能陷阱?
python
站大爷IP19 分钟前
Python办公自动化实战:手把手教你打造智能邮件发送工具
python
chao_78934 分钟前
回溯题解——子集【LeetCode】二进制枚举法
开发语言·数据结构·python·算法·leetcode
zdw1 小时前
fit parse解析佳明.fit 运动数据,模仿zwift数据展示
python
剑桥折刀s1 小时前
Python打卡:Day46
python
巴里巴气2 小时前
Python爬虫图片验证码和滑块验证码识别总结
爬虫·python
sword devil9002 小时前
PYQT实战:智能家居中控
python·智能家居·pyqt
NetX行者2 小时前
FastMCP:用于构建MCP服务器的开源Python框架
服务器·python·开源
超龄超能程序猿2 小时前
(3)机器学习小白入门 YOLOv: 解锁图片分类新技能
python·numpy·pandas·scipy