鱼C论坛

 找回密码
 立即注册
查看: 5756|回复: 46

[技术交流] 百度图片 爬虫制作 + pyinstaller exe 打包

[复制链接]
发表于 2021-1-27 20:03:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
攻略一:

https://fishc.com.cn/thread-189217-1-1.html

攻略二:

https://fishc.com.cn/thread-189464-1-1.html

请注意,攻略一中的源代码在某些特定情况下可能会有 JSONDecError 的问题出现,如需修缮后的代码,请移步以下链接

https://fishc.com.cn/thread-189424-1-1.html

那么接下来就开始教学,如何给 python 文件进行打包操作,使其能够在其他机器上独立运行

这里只介绍 windows 系统的教程, mac 的类似

在开始前,请更新一下 pip

pip install --upgrade pip

如果出现提示输入 '--user',则

pip install --upgrade pip -- user

之后我们需要安装 pyinstaller

pip install pyinstaller

如果觉得很慢的话,可以尝试清华镜像源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

确实,b站或者网上有很多的资料有关于如何使用 pyinstaller 的,但是很多坑是不会被提到的

网上有很多的教程会说要使用 powershell运行 pyinstaller,左思右想也没有发现有什么不同

昨日花了大半天的时间,为了调出 powershell,最后发现 vscode 或者 terminal 也能运行

在命令行中前往需要合并的 python 文件的路径,请保证所有的 python 文件均放置在同一个文件夹下

此处请确保已经在当前机器中安装 python 文件运行的必要 第三方库,否则即使打包成功, exe 也必将闪退无法运行

pyinstaller 会自动从本地 python 安装路径导入所需要的 第三方库

如果不需要插入 ico,也就是 exe 的图标,直接在命令行使用

pyinstaller -F py文件1 py文件2 py文件3

例如:

pyinstaller -F main.py

亦或是多个 python 文件的合并

pyinstaller -F main.py func.py tool.py

有几个 python 文件就写几个,建议把主运行文件放在第一位置

如果出现以下提示,表明打包完成

截屏2021-01-27 19.22.24.png

此处需要注意的是,在封包之前,模块文件中如果含有 if __name__ == '__main__': 之类的东西,请一定要去除,否则模块文件将会被视为执行文件,if __name__ == '__main__':中的内容将会被执行

如果需要插入 ico,也就是 exe 的图标,直接在命令行使用

pyinstaller -F -i image.ico py文件1 py文件2 py文件3

image.ico 为 ico的名称

请注意,不要直接修改 png jpeg jpg 后缀为 ico !!!!!!!千万不要!!!!!!否则会出现报错!!!!!!!!!
请自行百度搜索 png 转 ico 在线转换,获得 ico 图标,另外,原 png 文件清晰度和尺寸大小请勿过小,否则可能会获得一坨马赛克

P.s ico 文件请和 python 文件放置在同一个路径下

最终的 exe 文件会出现在 dist 文件夹里,可以单独使用(只需要该 exe 文件即可单独运行,不需要其他任何文件)

那么一定会有人问了,如何才能在 exe 文件里面插入图片

刚刚介绍的是如何插入 ico 图标,并非图片

这里我们先感谢外网的大佬 ArmindoFlores

请在网址开头加上 https://
stackoverflow.com/questions/51264169/pyinstaller-add-folder-with-images-in-exe-file

在上一步中,我们不难发现,多了一个 build 文件夹,dist 文件夹 和 .spec 文件

右键用 notepad 等方式打开 .spec 文件

如下图

截屏2021-01-27 19.39.14.png

按照上图操作

在 python 文件里调用 image 的文件中,添加以下代码
def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)

注意要 import sys 喔

image 调用时,请使用 resource_path('你的 image 文件名称')

例如:

file = resource_path('image.jpeg')

全部做完后,请保存,关闭 .spec 文件

此时再在之前的命令行中运行

pyinstaller spec文件

例如:

pyinstaller main.spec

当看到



时,则为打包成功

完成打包后生成的 exe 文件被放置在 dist 文件中,可以单独使用啦~

再次运行,就会看到可爱的图片了

如果运行 exe 文件时出现闪退,打开手机的录像功能,打开慢动作拍摄,将闪退那一瞬间,exe 文件显示的报错信息录制下来

一般情况下都是第三方库没有成功导入导致的(no module named xxx),请检查当前机器是否已经安装好所需的第三方库

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-28 17:26:18 | 显示全部楼层
唔,最后几行,当看到之前的那个蓝色图片,也就是这个时,打包完成

截屏2021-01-27 19.22.24.png

抱歉,图没贴出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-28 17:20:36 | 显示全部楼层
emmmmmmm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-28 18:37:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-28 18:37:55 | 显示全部楼层
鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-28 23:21:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 11:34:25 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 11:41:37 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 15:35:15 | 显示全部楼层

回帖奖励 +1 鱼币

无敌
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-30 14:33:42 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-30 14:34:23 | 显示全部楼层

回帖奖励 +1 鱼币

没了吗再来一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-30 15:57:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-30 16:00:50 | 显示全部楼层
再来一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-30 16:36:08 | 显示全部楼层
鱼币嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-30 17:18:05 | 显示全部楼层
支持楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-30 22:18:33 | 显示全部楼层
感谢楼主,进来学习一下,都荒废了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-31 09:37:48 | 显示全部楼层

回帖奖励 +1 鱼币

这个东西后期要用到,收藏了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-31 10:09:39 | 显示全部楼层
111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-31 13:16:14 | 显示全部楼层

回帖奖励 +1 鱼币

谢谢大佬!
百度的反扒可牛皮了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-31 14:34:16 | 显示全部楼层
weiter 发表于 2021-1-31 13:16
谢谢大佬!
百度的反扒可牛皮了

其实我也就是学完了小甲鱼的 python 入门课程的第一版

剩下的就是看看 CSDN 外站什么的

当然也有一些鱼油的爬虫问题里面的思路启发

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
weiter + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 03:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表