pyinstaller打包py脚本Warning:lib not found等相关问题
小爬从使用Pyinstaller打包py为exe文件以来,一直都会碰到Warning:lib not found等相关问题,诸如:

虽然大多数时候,您像我一样忽略这些warning,打包后的exe也能运行。网上有一堆的方法,有建议装win7的,也有建议换32位python文件的,有提示下载2G大小的相关SDK的。总之,就是pyinstaller对目前的win10支持不够友好!但是网上这些方法代价太高,那么不改win10 X64系统,不更改 python版本(3.6.4)的情况下,如何优雅地使用pyinstaller且没有满屏的warning提示呢?
小爬我经过一番摸索,终于找到了方法,pyinstaller提示找不到的这些dll文件,比如 api-ms-win-crt-runtime-l1-1-0.dll 其实 在win10系统中同样是存在的,大部分都在:C:\Windows\System32\downlevel路径和它的上层路径C:\Windows\System32 下,如下图:

我们只需要将这两个路径加入用户环境变量即可。

添加完环境变量后,pyinstaller再打包py文件时,会优先在这些路径查找,就可以成功打包了。PS:记得注销系统重新登陆后,方能生效!
再次打包,页面清爽多了,win10 X64下亲测有效!

PS:需要注意的是,很多时候我们pyinstaller打包py文件虽然显示“成功”,但是真正运行exe文件,依旧会报错,诸如fail to execute script之类,终端界面往往一闪而过,我们肉眼很多时候甚至看不清具体原因!小爬有个笨方法——录屏。推荐一个好用的录屏软件Ocam。肉眼看上去一闪而过的提示信息会被录屏软件完整记录下来,形成mp4文件,我们再借助播放器的暂停功能,就可以定位到错误信息。以下是我执行时遇到的几个错误:


这个时候问题就简单了,比如,上面这两个图提示的是,一个找不到模块distuils,一个提示需要安装依赖库xlrd。我们将distuils文件夹从python文件位置对应的lib文件下找到,放到我们的python(env)对应的文件夹下即可,xlrd则直接用pip安装即可。

ps:如果您要打包的是像我一样引用了pandas库的py文件,则程序中尽可能不要直接 import pandas as pd,这样打包后的exe文件非常大,可以考虑用到什么函数就引用什么函数,如:
如果您在使用pyinstaller时有这类困扰,快用我的方法再试试吧!
pyinstaller打包py脚本Warning:lib not found等相关问题的更多相关文章
- PyInstaller打包python脚本的一些心得
PyInstaller打包python脚本的一些心得 因为在公司经常要帮同事做一个从excel表格中提取出需要的内容的重复工作,比较繁琐还容易出错:于是就想着要写个程序,但是同事又不可能在电脑上也装上 ...
- pyinstaller打包.py程序为.exe操作指南
pyinstaller打包.py程序为.exe操作指南 20190526内容纲要: 1.pyinstaller安装 2.程序封装 3.可执行程序 0 前言 今天第一次试试将一个py程序封装成一个.ex ...
- 使用pyinstaller打包.py程序
使用pyinstaller打包.py程序 例如打包D:/Desktop 目录下的 filename.py 文件 打开 cmd 将目录切换至 D:/Desktop 输入命令 pyinstaller -F ...
- Pyinstaller打包Selenium脚本为exe文件执行问题
由于同事辞职,许多运维工具的维护工作就交到我这里处理了,运维居然没人会Python脚本! 用Selenium编写的一个爬虫脚本cctv.py,需要给不懂软件的人运行.为了不让他去搭建,安装各种包,库, ...
- PyInstaller打包Python脚本为exe
1.PyInstaller-3.1.1 百度云链接 http://pan.baidu.com/s/1jHYWin8 密码 oapl 2.安装最新版本的 pywin32-217.win32-py2 ...
- PyInstaller打包python脚本
用python写的工具写好了,想打包然后发给测试同事使用,最后选择了PyInstaller,支持Windows.Linux.OS X,支持打包成一个文件夹或单个EXE文件. 我是直接在线安装的,在 ...
- 20.用PyInstaller打包py程序的步骤及问题解决
最近写了一个移动和复制文件的代码,代码完成之后,想将其打包成一个可以在任何电脑上使用的软件, 于是在网上查找相关资料,可以用PyInstaller打包成.exe程序,以下是具体步骤: 1.安装PyIn ...
- pyinstaller打包py文件成exe文件时,出现ImportError: No module named 'pefile'错误解决办法!
首先pyinstaller的安装与使用详见如下链接: 安装完成之后,命令行中输入pyinstaller之后,结果如下: ImportError: No module named 'pefile' 缺少 ...
- pyinstaller 打包selenium脚本 取消cmd
更改源代码 找到文件(selenium->webdriver->common->service.py) 添加一个参数
随机推荐
- Javascript 用来验证电话号码的正则
Javascript 用来验证电话号码的正则 在学习 Javascript 时学习到的. function telephoneCheck(str) { // return /^(1\s?)?(\d{3 ...
- 2019-10-7-WPF-如何跨线程重新抛出异常
title author date CreateTime categories WPF 如何跨线程重新抛出异常 lindexi 2019-10-07 13:24:54 +0800 2019-10-4 ...
- JavaScript原型链中toString()方法输出alert()和console.log()得到不同的结果
<script language="javascript"> function myObj(){ var total = 0; } myObj.prototype.ad ...
- oracle函数 REPLACE(c1,c2[,c3])
[功能]将字符表达式值中,部分相同字符串,替换成新的字符串 [参数] c1 希望被替换的字符或变量 c2 被替换的字符串 c3 要替换的字符串,默认为空(即删除之意,不是空格) [返回]字 ...
- Win7如何显示文件后缀
有些时候,我们需要修改文件的后缀名,但是Windows7系统默认不显示文件后缀.我们怎样显示和修改文件后缀呢?请接着往下看. 工具/原料 一个win7系统 方法/步骤 1 如图所示,此时是无法 ...
- codedecision P1112 区间连续段 题解 线段树
题目描述:https://www.cnblogs.com/problems/p/P1112.html 题目链接:http://codedecision.com/problem/1112 线段树区间操作 ...
- 彻底解决tensorflow:ImportError: Could not find 'cudart64_90.dll' tensorflow安装
今天装tensorflow-gpu出现了很多问题 1.pip install tensorflow-gpu下载过慢 解决办法可查看 Python机器学习常用模块 2.安装完tensorflow以后,运 ...
- Javassist指引(二)--ClassPool
原文链接 上一章: Javassist指引(一) 2.ClassPool ClassPool是一个CtClass的容器.因为编译器随时可能访问一个CtClass类,所以一旦一个CtClass创建,它将 ...
- 买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
- Python--day44--navicat使用(知道怎么用就好,要用终端操作,用这个会被人鄙视)