百度图片 爬虫制作 + pyinstaller exe 打包
攻略一:https://fishc.com.cn/thread-189217-1-1.html
攻略二:
https://fishc.com.cn/thread-189464-1-1.html
请注意,攻略一中的源代码在某些特定情况下可能会有 JSONDecError 的问题出现,如需修缮后的代码,请移步以下链接{:10_254:}
https://fishc.com.cn/thread-189424-1-1.html
那么接下来就开始教学,如何给 python 文件进行打包操作,使其能够在其他机器上独立运行{:10_275:}
这里只介绍 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 的,但是很多坑是不会被提到的{:10_272:}
网上有很多的教程会说要使用 powershell运行 pyinstaller,左思右想也没有发现有什么不同
昨日花了大半天的时间,为了调出 powershell,最后发现 vscode 或者 terminal 也能运行{:10_245:}
在命令行中前往需要合并的 python 文件的路径,请保证所有的 python 文件均放置在同一个文件夹下
此处请确保已经在当前机器中安装 python 文件运行的必要 第三方库,否则即使打包成功, exe 也必将闪退无法运行
pyinstaller 会自动从本地 python 安装路径导入所需要的 第三方库{:10_315:}
如果不需要插入 ico,也就是 exe 的图标,直接在命令行使用
pyinstaller -F py文件1 py文件2 py文件3
例如:
pyinstaller -F main.py
亦或是多个 python 文件的合并
pyinstaller -F main.py func.py tool.py
有几个 python 文件就写几个,建议把主运行文件放在第一位置{:10_329:}
如果出现以下提示,表明打包完成
此处需要注意的是,在封包之前,模块文件中如果含有 if __name__ == '__main__': 之类的东西,请一定要去除,否则模块文件将会被视为执行文件,if __name__ == '__main__':中的内容将会被执行{:10_328:}
如果需要插入 ico,也就是 exe 的图标,直接在命令行使用{:10_309:}
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 图标,并非图片{:10_336:}
这里我们先感谢外网的大佬 ArmindoFlores
请在网址开头加上 https://
stackoverflow.com/questions/51264169/pyinstaller-add-folder-with-images-in-exe-file
在上一步中,我们不难发现,多了一个 build 文件夹,dist 文件夹 和 .spec 文件
右键用 notepad 等方式打开 .spec 文件
如下图{:10_300:}
按照上图操作
在 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 文件{:10_308:}
此时再在之前的命令行中运行
pyinstaller spec文件
例如:
pyinstaller main.spec
当看到
时,则为打包成功{:10_287:}
完成打包后生成的 exe 文件被放置在 dist 文件中,可以单独使用啦~
再次运行,就会看到可爱的图片了{:10_248:}
如果运行 exe 文件时出现闪退,打开手机的录像功能,打开慢动作拍摄,将闪退那一瞬间,exe 文件显示的报错信息录制下来
一般情况下都是第三方库没有成功导入导致的(no module named xxx),请检查当前机器是否已经安装好所需的第三方库{:10_263:} 唔,最后几行,当看到之前的那个蓝色图片,也就是这个时,打包完成{:10_256:}
抱歉,图没贴出来 emmmmmmm{:10_245:} {:10_245:} 鱼币 {:10_269:} {:5_95:} {:9_227:} 无敌 {:10_256:} 没了吗再来一次{:10_256:} {:10_256:} 再来一次 鱼币嘻嘻 支持楼主{:10_257:} {:10_301:}感谢楼主,进来学习一下,都荒废了 这个东西后期要用到,收藏了 111 谢谢大佬!
百度的反扒可牛皮了 weiter 发表于 2021-1-31 13:16
谢谢大佬!
百度的反扒可牛皮了
其实我也就是学完了小甲鱼的 python 入门课程的第一版
剩下的就是看看 CSDN 外站什么的
当然也有一些鱼油的爬虫问题里面的思路启发{:10_248:}