Python使用pyinstaller打包正常程序后运行不正常'Could not find a suitable TLS CA certificate bundle, invalid path:.‘

最近学习python的tkinter模块,并用pyinstaller打包了一个图片压缩程序,源代码可以正常运行,但是打包成功运行后程序就无法执行,会报错"Could not find a suitable TLS CA certificate bundle":

查了一下原因,因为压缩图片的库都要用到

import xxx

库打包之后就会出现"Could not find a suitable TLS CA certificate bundle"问题,打包之后按默认路径无法找到cacert.pem文件

其实在打包程序的时候很容易出现这样的问题,库中还包含很多其它相关库和文件,在源程序中会自动调用,不用在开头引用,但是打包之后exe程序默认不会去调用相关的库。

第一想法是既然在这个目录下找不到这个文件,那我手动将这个文件拷过去是不是就可以了,将 python安装路径\Lib\site-packages\tinify\cacert.pem文件复制,准备拷贝时发现ME12121962文件(打包生成的文件)下并没有requests文件,我自己建了一个:

结果仍然报错

解决办法:手动将所需库/文件添加到程序的引用中

1.将 python安装路径\Lib\site-packages\tinify\cacert.pem复制到包含您的exe的目录

在这里插入图片描述

复制到exe所在文件下:

在这里插入图片描述

2.在代码中加入以下命令进行调用:

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

注意:REQUESTS_CA_BUNDLE这个键值不变

然后重新打包就可以了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值