python3 爬取数据使用pyinstaller打包成exe时bs4打包不进去的问题
昨天写了一个程序从中国天气网获取几个城市的天气,但是在使用pyinstaller打包成exe可执行文件时报了一个错,如下图所示:
我用的是python3.6,看代码是这句的锅:
from bs4 import BeautifulSoup看提示信息是bs4没有打包进exe文件里,但是我电脑上是装了bs4的
我的打包命令:pyinstaller -F D:\SpiderWeather.py
于是上网搜索解决方案,然后看到pyinstaller 有一个-p命令,于是试验一下:
pyinstaller -F -p D:\software\Python\Python36\Lib;d:\software\python\python36\Lib\site-packages; D:\python_exe\SpiderWeather.py
其中d:\software\python\python36\Lib\site-packages这个路径就是bs4的安装路径
结果果然打包成功,在其他电脑上可以运行
但是问题又来了,有的电脑运行不了会提示这个
搜索了一下发现下载安装VC运行库就可以了,下载地址:
https://www.microsoft.com/zh-cn/download/details.aspx?id=48145&e6b34bbe-475b-1abd-2c51-b5034bcdd6d2=True
然后发现打包成的exe文件图标有点丑,于是上网搜索了一张图像跟背景差别大一点的图片,用photoShop魔棒工具处理一下,存成png格式,
在这个网站上生成一个ico图标:https://www.ico.la/
然后执行这个打包命令,指定一张图片
pyinstaller -F -p D:\software\Python\Python36\Lib;d:\software\python\python36\Lib\site-packages –i D:\python_exe\ico2.ico D:\python_exe\SpiderWeather.py
当然,还可以使用这个打包命令给程序指定一个名称:
pyinstaller -F -p D:\software\Python\Python36\Lib;d:\software\python\python36\Lib\site-packages –i D:\python_exe\ico.ico -n weather D:\python_exe\SpiderWeather.py
这样就可以用了。
不过在过程中还发现一些问题,比如有的电脑安装vs2015安装成功了但是还是提示丢失dll文件,不知道为啥。