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

结语

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

相关推荐
struggle202531 分钟前
Burn 开源程序是下一代深度学习框架,在灵活性、效率和可移植性方面毫不妥协
人工智能·python·深度学习·rust
腾飞开源34 分钟前
17_Flask部署到网络服务器
python·flask·python web开发·flask快速入门教程·flask框架·flask视频教程·flask会话技术
Mikhail_G1 小时前
Python应用八股文
大数据·运维·开发语言·python·数据分析
mikes zhang1 小时前
Flask文件上传与异常处理完全指南
后端·python·flask
烛阴1 小时前
深入浅出地理解Python元类【从入门到精通】
前端·python
weixin_464078072 小时前
Python学习小结
python·学习
ubax3 小时前
day 51 python打卡
开发语言·python
laocooon5238578863 小时前
基于Python的TCP应用案例,包含**服务器端**和**客户端**的完整代码
网络·python·tcp/ip
哆啦A梦的口袋呀3 小时前
设计模式汇总
python·设计模式
救救孩子把3 小时前
如何在n8n中突破Python库限制,实现持久化虚拟环境自由调用
开发语言·python·n8n