前言:

最近想把写好的爬虫文件发给朋友,由于考虑到朋友电脑里没有运行环境,下载环境安装所需要的库实在是太麻烦了,所以直接打包成exe文件发给他,这样就算没有python环境也可以双击exe文件运行。这里将我打包文件的步骤和中间出现的一些问题进行一个总结。

1. python程序打包exe常用命令

这里我们常用的打包工具是pyinstaller,我们先来安装一下

pip install pyinstaller

安装完毕后我们打开文件所在目录的cmd控制台,输入以下命令即可打包

pyinstaller -F 文件.py#-F表示将python程序直接打包成exe,后面空格接文件名字
​
pyinstaller -F -w 文件.py#-w表示生成的exe文件双击不会出现控制台
​
pyinstaller -F -i 图标.ico 文件.py
#-i表示生成的exe文件使用自定义图标,后面空格接图标名称
#图标文件一定要和打包文件放在同一目录下

我们输入命令来打包一下

此时目录下会多出一些文件(红色框圈出),总体结构是这样的

打包好的exe文件就在dist目录下

2. 爬虫程序打包过程中出现的问题

当我们将爬虫程序打包后,双击exe文件却发现文件运行不了,控制台报如下错误

Traceback (most recent call lsat):File "xxx.py",line 3,in <module>File "src/lxml/etree.pyx",line 74,in init lxml.etree
ImportError:cannot import name _elementpath
[8292]Failed to execute script 'xxx' due to unhandled exception!

这是因为我们在写python爬虫程序的时候用到了lxml库,但打包的时候没有将lxml打包进去,这时我们打包就要加上这样一句话来手动指定导入

pyinstaller -F XXX.py --hidden-import lxml._elementpath

此时打包完后又出现了新的问题,当我们运行exe文件执行爬虫程序时发现又会报错

Failed and Retry
('Could not find a suitable TLS CA certificate bunde,invalid path:C:\\XXX\\XXX\\cacert.pem')

原因是当我们在程序中用requests库进行请求操作的时候需要CA证书,也就是cacert.pem这个文件,打包的时候pyinstaller无法将这个文件打包,所以当我们运行exe文件的时候,程序找不到这个cacert.pem文件就会报错。这时候就需要这样做:

1. 在代码中加入这样一行代码,并重新打包

import os,sys
os.environ['REQUESTS_CA_BUNDLE'] =  os.path.join(os.path.dirname(sys.argv[0]), 'cacert.pem')

2. 从别的地方找一个cacert.pem文件复制过来

我查了很多办法,都说按【python安装路径\Lib\site-packages\requests\cacert.pem】路径找这个文件,但我发现我的requests目录下并没有这个文件,于是我在【site-packages】目录下直接搜索cacert.pem,成功找到了这个文件

我们将文件复制出来(一定要是复制,移动的话会导致对应的库无法正常使用),与打包好的exe文件放在同一级目录下,这时我们再双击exe文件就能正常运行了

python爬虫文件打包成exe文件相关推荐

  1. 将Python文件打包成exe文件(超详细)

    首先,我们为什么要把Python文件打包成exe文件? 因为,Python文件需要Python IDE打开 而exe,就是一个程序,双击就开了! 岂不是妙哉? 基础准备 首先,打开终端,我们要下载打包 ...

  2. python - .py文件打包成.exe文件, 发送给别人

    python文件打包成.exe文件有两种方式 参考: pyinstaller打包 Nuitka打包 环境 环境 描述 OS Windows10 64位 python 3.7 pycharm 2019 ...

  3. vs python生成exe文件_使用VScode编写python程序并打包成.exe文件-文件夹变成exe

    1. 下载vscode并安装 2. 配置Python环境 点击左下角的吃了图标,在弹出的菜单中选择extensions,在左上方搜索框内输入"Python",可以看到好多Pytho ...

  4. python 程序打包 vscode_使用VScode编写python程序并打包成.exe文件

    听说Visual Studio Code(VS Code)的诸多好处,了解了一下果真很喜欢,我喜欢它的缘由主要有3个,一是VS Code开源且跨平台,二是由于其界面很是酷,三是能够知足个人大所属代码需 ...

  5. pyinstaller将py文件打包成EXE文件(保姆级教程)

    一.PyInstaller 库的安装 1.一般安装步骤: pip install pyinstaller一般的安装方法是在cmd命令提示符环境下输入: window+r 运行cmd 输入以下内容切换到 ...

  6. 将python文件打包成exe文件(带附属txt文件)

    一.安装pyinstaller 打包需要用到pyinstaller,打开cmd,直接输入下面语句即可: pip install pyinstaller 就像下图这样: 二.打包 2.1 文件 我想要打 ...

  7. linux添加py自启动脚本_PyInstaller详解:将.py文件打包成exe文件

    1. 安装 本人系统是:Ubuntu16.04,python3.7. 安装的pyinstaller==3.5, UPX==upx-3.95-amd64_linux.tar.xz.不安装对应版本的pyi ...

  8. 利用cx_Freeze将py文件打包成exe文件(图文全解)

    python是一个非常非常优秀的编程语言,它最大的特性就是跨平台.python程序几乎可以在所有常见的平台中进行使用,而且大部分无需修改任何代码!不过,python也有一点点小缺憾(这个是由于自身本质 ...

  9. 利用cx_Freeze将py文件打包成exe文件(图文全解)(转帖)

    python是一个非常非常优秀的编程语言,它最大的特性就是跨平台.python程序几乎可以在所有常见的平台中进行使用,而且大部分无需修改任何代码!不过,python也有一点点小缺憾(这个是由于自身本质 ...

最新文章

  1. 基于最短路方法的生物序列比对问题研究
  2. ios ble 参考
  3. 【iOS-Cocos2d游戏开发之十五】详解CCProgressTimer 进度条并修改cocos2d源码实现“理想”游戏进度条!...
  4. 周报速递丨北交所 SaaS 首股将出;央行等印发《金融标准化“十四五”发展规划》
  5. 2019年华南理工大学程序设计竞赛(春季赛)
  6. QT学习:基于UDP的网络广播程序
  7. spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)
  8. 基于Ganos百行代码实现亿级矢量空间数据在线可视化
  9. 转自云风blog:三国志战略版服务器卡顿问题
  10. 《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.6 磁盘驱动部件...
  11. 如何在 Mac 上轻松编辑、批注、签名和标记 PDF?
  12. 适配器模式之备忘录模式
  13. 软考数据库系统工程师教材改版啦
  14. 手把手教你设计数字钟(基于protues8.6)
  15. SEO外语网站批量翻译软件
  16. V2X测试系列——V2X应用场景仿真及开发流程
  17. 我在赶集网的两个月(数据挖掘、竞情分析、产品、团购、运营、电话销售)
  18. IDEA映射文件去掉黄色和绿色背景
  19. 4月以来北京,上海,广州,深圳,杭州Java程序员涨工资400倒500,南京涨了800元
  20. (转)关于如何学好游戏3D引擎编程的一些经验

热门文章

  1. html a标签下载
  2. ipad刷机的时候,突然中断了怎么处理好
  3. Hyperlegder Fabric 1.4.4 手动搭建BYFN网络
  4. 双11 优惠券不够用?本平台送福利了......
  5. windows10怎么打开mysql数据库服务
  6. 深能源拟认购长城证券2.7亿股
  7. [Android应用]《幽默笑话》V1.0 Beta 版本发布!
  8. Linux中的特殊符号怎么打出
  9. excel批量插入n行
  10. 无处不在的 Kubernetes,难用的问题解决了吗?